1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-30 19:03:16 +03:00

Improved technique for parsing the ON and USING clauses of a join is faster

and uses less memory.

FossilOrigin-Name: 158156a3e3d50042cafc75dea3aaaa68b1f2efb9c3d178518ea6e68e32e0d21c
This commit is contained in:
drh
2022-04-07 01:11:13 +00:00
parent 200adc9e75
commit d44f8b2385
16 changed files with 150 additions and 113 deletions

View File

@ -96,7 +96,7 @@ do_join_test e_select-0.1.3 {
} {9}
do_catchsql_test e_select-0.1.4 {
SELECT count(*) FROM t1, t2 ON (t1.a=t2.a) USING (a)
} {1 {cannot have both ON and USING clauses in the same join}}
} {1 {near "USING": syntax error}}
do_catchsql_test e_select-0.1.5 {
SELECT count(*) FROM t1, t2 USING (a) ON (t1.a=t2.a)
} {1 {near "ON": syntax error}}

View File

@ -307,7 +307,7 @@ do_test join-3.3 {
catchsql {
SELECT * FROM t1 JOIN t2 ON t1.a=t2.b USING(b);
}
} {1 {cannot have both ON and USING clauses in the same join}}
} {1 {near "USING": syntax error}}
do_test join-3.4.1 {
catchsql {
SELECT * FROM t1 JOIN t2 USING(a);

View File

@ -34,13 +34,13 @@ do_test tkt3935.3 {
do_test tkt3935.4 {
catchsql { SELECT a FROM (t1) AS t ON b USING(a) }
} {1 {a JOIN clause is required before ON}}
} {1 {near "USING": syntax error}}
do_test tkt3935.5 {
catchsql { SELECT a FROM (t1) AS t ON b }
} {1 {a JOIN clause is required before ON}}
do_test tkt3935.6 {
catchsql { SELECT a FROM (SELECT * FROM t1) AS t ON b USING(a) }
} {1 {a JOIN clause is required before ON}}
} {1 {near "USING": syntax error}}
do_test tkt3935.7 {
catchsql { SELECT a FROM (SELECT * FROM t1) AS t ON b }
} {1 {a JOIN clause is required before ON}}
@ -49,7 +49,7 @@ do_test tkt3935.8 {
} {1 {a JOIN clause is required before ON}}
do_test tkt3935.9 {
catchsql { SELECT a FROM t1 AS t ON b USING(a) }
} {1 {a JOIN clause is required before ON}}
} {1 {near "USING": syntax error}}
do_test tkt3935.10 {
catchsql { SELECT a FROM t1 AS t USING(a) }
} {1 {a JOIN clause is required before USING}}

View File

@ -263,7 +263,7 @@ do_test vtab6-3.3 {
catchsql {
SELECT * FROM t1 JOIN t2 ON t1.a=t2.b USING(b);
}
} {1 {cannot have both ON and USING clauses in the same join}}
} {1 {near "USING": syntax error}}
do_test vtab6-3.4 {
catchsql {
SELECT * FROM t1 JOIN t2 USING(a);