mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
Make sure the omit-noop-left-join optimization is not applied if columns
of the LEFT JOIN are used in the ORDER BY clause. Ticket [be84e357c035] FossilOrigin-Name: 0303d6bc7112e6f810ae1bd75cafc5ffc51f5212
This commit is contained in:
14
manifest
14
manifest
@ -1,5 +1,5 @@
|
|||||||
C Simplify\sbranch\scoverage\stesting\sby\sinterchanging\sthe\sorder\sof\stwo\stests\nin\sthe\swhereLoopInsert()\sfunction.
|
C Make\ssure\sthe\somit-noop-left-join\soptimization\sis\snot\sapplied\sif\scolumns\nof\sthe\sLEFT\sJOIN\sare\sused\sin\sthe\sORDER\sBY\sclause.\s\s\nTicket\s[be84e357c035]
|
||||||
D 2013-09-02T20:22:18.651
|
D 2013-09-03T14:03:47.008
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in 5e41da95d92656a5004b03d3576e8b226858a28e
|
F Makefile.in 5e41da95d92656a5004b03d3576e8b226858a28e
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@ -290,7 +290,7 @@ F src/vtab.c 165ce0e797c2cd23badb104c9f2ae9042d6d942c
|
|||||||
F src/wal.c 7dc3966ef98b74422267e7e6e46e07ff6c6eb1b4
|
F src/wal.c 7dc3966ef98b74422267e7e6e46e07ff6c6eb1b4
|
||||||
F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4
|
F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4
|
||||||
F src/walker.c 4fa43583d0a84b48f93b1e88f11adf2065be4e73
|
F src/walker.c 4fa43583d0a84b48f93b1e88f11adf2065be4e73
|
||||||
F src/where.c 573a815c28a7c70b5148a23ec040bb8992e51e5d
|
F src/where.c 99477e9dd4d4d33be32115b4fbd18b6f033d045a
|
||||||
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
|
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
|
||||||
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
|
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
|
||||||
F test/aggnested.test 45c0201e28045ad38a530b5a144b73cd4aa2cfd6
|
F test/aggnested.test 45c0201e28045ad38a530b5a144b73cd4aa2cfd6
|
||||||
@ -1041,7 +1041,7 @@ F test/walro.test 6cc247a0cc9b36aeea2057dd28a922a1cdfbd630
|
|||||||
F test/walshared.test 0befc811dcf0b287efae21612304d15576e35417
|
F test/walshared.test 0befc811dcf0b287efae21612304d15576e35417
|
||||||
F test/walslow.test e7be6d9888f83aa5d3d3c7c08aa9b5c28b93609a
|
F test/walslow.test e7be6d9888f83aa5d3d3c7c08aa9b5c28b93609a
|
||||||
F test/walthread.test de8dbaf6d9e41481c460ba31ca61e163d7348f8e
|
F test/walthread.test de8dbaf6d9e41481c460ba31ca61e163d7348f8e
|
||||||
F test/where.test da54153a4c1571ea1b95659e5bec8119edf786aa
|
F test/where.test 8d66dfbfd4d12816f74f854dbf67dee492c06267
|
||||||
F test/where2.test 76d5346f7edb2a6a0442dcf3e9d088ac6903e0b5
|
F test/where2.test 76d5346f7edb2a6a0442dcf3e9d088ac6903e0b5
|
||||||
F test/where3.test d28c51f257e60be30f74308fa385ceeddfb54a6e
|
F test/where3.test d28c51f257e60be30f74308fa385ceeddfb54a6e
|
||||||
F test/where4.test e9b9e2f2f98f00379e6031db6a6fca29bae782a2
|
F test/where4.test e9b9e2f2f98f00379e6031db6a6fca29bae782a2
|
||||||
@ -1109,7 +1109,7 @@ F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
|||||||
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
|
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
|
||||||
F tool/wherecosttest.c f407dc4c79786982a475261866a161cd007947ae
|
F tool/wherecosttest.c f407dc4c79786982a475261866a161cd007947ae
|
||||||
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
|
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
|
||||||
P 0a702c4b4c35fdbcb62e3ab88b9e57d7ea0052a8
|
P f7079b5365dd6cd8324a4fb23605e81476122ed6
|
||||||
R 5255609fa5f702769f786eafe83d1965
|
R ef683c5e75a524283b39e51db1610c55
|
||||||
U drh
|
U drh
|
||||||
Z 3ad66b5373e173075a1fd9a0798ca8c7
|
Z 7e7396aa706179eb8731d96e0b228672
|
||||||
|
@ -1 +1 @@
|
|||||||
f7079b5365dd6cd8324a4fb23605e81476122ed6
|
0303d6bc7112e6f810ae1bd75cafc5ffc51f5212
|
@ -5909,7 +5909,7 @@ WhereInfo *sqlite3WhereBegin(
|
|||||||
&& OptimizationEnabled(db, SQLITE_OmitNoopJoin)
|
&& OptimizationEnabled(db, SQLITE_OmitNoopJoin)
|
||||||
){
|
){
|
||||||
Bitmask tabUsed = exprListTableUsage(pMaskSet, pResultSet);
|
Bitmask tabUsed = exprListTableUsage(pMaskSet, pResultSet);
|
||||||
if( pOrderBy ) tabUsed |= exprListTableUsage(pMaskSet, pOrderBy);
|
if( sWLB.pOrderBy ) tabUsed |= exprListTableUsage(pMaskSet, sWLB.pOrderBy);
|
||||||
while( pWInfo->nLevel>=2 ){
|
while( pWInfo->nLevel>=2 ){
|
||||||
WhereTerm *pTerm, *pEnd;
|
WhereTerm *pTerm, *pEnd;
|
||||||
pLoop = pWInfo->a[pWInfo->nLevel-1].pWLoop;
|
pLoop = pWInfo->a[pWInfo->nLevel-1].pWLoop;
|
||||||
|
@ -1304,4 +1304,33 @@ do_test where-17.5 {
|
|||||||
}
|
}
|
||||||
} {42 1 43 1}
|
} {42 1 43 1}
|
||||||
|
|
||||||
|
# Ticket [be84e357c035d068135f20bcfe82761bbf95006b] 2013-09-03
|
||||||
|
# Segfault during query involving LEFT JOIN column in the ORDER BY clause.
|
||||||
|
#
|
||||||
|
do_execsql_test where-18.1 {
|
||||||
|
CREATE TABLE t181(a);
|
||||||
|
CREATE TABLE t182(b,c);
|
||||||
|
INSERT INTO t181 VALUES(1);
|
||||||
|
SELECT DISTINCT a FROM t181 LEFT JOIN t182 ON a=b ORDER BY c IS NULL;
|
||||||
|
} {1}
|
||||||
|
do_execsql_test where-18.2 {
|
||||||
|
SELECT DISTINCT a FROM t181 LEFT JOIN t182 ON a=b ORDER BY +c;
|
||||||
|
} {1}
|
||||||
|
do_execsql_test where-18.3 {
|
||||||
|
SELECT DISTINCT a FROM t181 LEFT JOIN t182 ON a=b ORDER BY c;
|
||||||
|
} {1}
|
||||||
|
do_execsql_test where-18.4 {
|
||||||
|
INSERT INTO t181 VALUES(1),(1),(1),(1);
|
||||||
|
SELECT DISTINCT a FROM t181 LEFT JOIN t182 ON a=b ORDER BY +c;
|
||||||
|
} {1}
|
||||||
|
do_execsql_test where-18.5 {
|
||||||
|
INSERT INTO t181 VALUES(2);
|
||||||
|
SELECT DISTINCT a FROM t181 LEFT JOIN t182 ON a=b ORDER BY c IS NULL, +a;
|
||||||
|
} {1 2}
|
||||||
|
do_execsql_test where-18.6 {
|
||||||
|
INSERT INTO t181 VALUES(2);
|
||||||
|
SELECT DISTINCT a FROM t181 LEFT JOIN t182 ON a=b ORDER BY +a, +c IS NULL;
|
||||||
|
} {1 2}
|
||||||
|
|
||||||
|
|
||||||
finish_test
|
finish_test
|
||||||
|
Reference in New Issue
Block a user