Make sure the WhereLoop.aLTerm[] array is large enough when processing
the skip-scan optimization. Fix for ticket [520070ec7fbaac]. FossilOrigin-Name: 46d040591f27be01b1860344f8a268797fe344f4
This commit is contained in:
parent
25555506df
commit
6c1de308f2
14
manifest
14
manifest
@ -1,5 +1,5 @@
|
|||||||
C Fix\sspeedtest1.c\sso\sthat\sin\s--explain\smode\sit\sonly\soutputs\snon-explain\stext\nfor\sDDL\sstatements.
|
C Make\ssure\sthe\sWhereLoop.aLTerm[]\sarray\sis\slarge\senough\swhen\sprocessing\nthe\sskip-scan\soptimization.\s\sFix\sfor\sticket\s[520070ec7fbaac].
|
||||||
D 2013-12-21T17:14:58.114
|
D 2013-12-22T20:44:10.723
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
|
F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@ -293,7 +293,7 @@ F src/vtab.c 21b932841e51ebd7d075e2d0ad1415dce8d2d5fd
|
|||||||
F src/wal.c 7dc3966ef98b74422267e7e6e46e07ff6c6eb1b4
|
F src/wal.c 7dc3966ef98b74422267e7e6e46e07ff6c6eb1b4
|
||||||
F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4
|
F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4
|
||||||
F src/walker.c e9e593d5bb798c3e67fc3893dfe7055c9e7d8d74
|
F src/walker.c e9e593d5bb798c3e67fc3893dfe7055c9e7d8d74
|
||||||
F src/where.c b8f3aab1e5843012895b89a183dcdd6cef0708db
|
F src/where.c 60bc8c5b00e2292c24a42455d022eeeda33a16f1
|
||||||
F src/whereInt.h 96a75c61f1d2b9d4a8e4bb17d89deb0cf7cba358
|
F src/whereInt.h 96a75c61f1d2b9d4a8e4bb17d89deb0cf7cba358
|
||||||
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
|
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
|
||||||
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
|
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
|
||||||
@ -809,7 +809,7 @@ F test/shell5.test cee83b4385f842fec1f2a0bec9ea811f35386edf
|
|||||||
F test/shortread1.test bb591ef20f0fd9ed26d0d12e80eee6d7ac8897a3
|
F test/shortread1.test bb591ef20f0fd9ed26d0d12e80eee6d7ac8897a3
|
||||||
F test/shrink.test 8c70f62b6e8eb4d54533de6d65bd06b1b9a17868
|
F test/shrink.test 8c70f62b6e8eb4d54533de6d65bd06b1b9a17868
|
||||||
F test/sidedelete.test f0ad71abe6233e3b153100f3b8d679b19a488329
|
F test/sidedelete.test f0ad71abe6233e3b153100f3b8d679b19a488329
|
||||||
F test/skipscan1.test 6bb4891c2cc5efd5690a9da9e7508e53d4a68e10
|
F test/skipscan1.test 8c777ffd9dad6ee6d2568160cb2158f0b5cd9dd2
|
||||||
F test/skipscan2.test 5a4db0799c338ddbacb154aaa5589c0254b36a8d
|
F test/skipscan2.test 5a4db0799c338ddbacb154aaa5589c0254b36a8d
|
||||||
F test/soak.test 0b5b6375c9f4110c828070b826b3b4b0bb65cd5f
|
F test/soak.test 0b5b6375c9f4110c828070b826b3b4b0bb65cd5f
|
||||||
F test/softheap1.test 40562fe6cac6d9827b7b42b86d45aedf12c15e24
|
F test/softheap1.test 40562fe6cac6d9827b7b42b86d45aedf12c15e24
|
||||||
@ -1147,7 +1147,7 @@ F tool/vdbe-compress.tcl 0cf56e9263a152b84da86e75a5c0cdcdb7a47891
|
|||||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||||
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
|
||||||
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
|
||||||
P 862228e50534a6b89c9498c4db664610db11485e
|
P 2d2b3c4951dc2b8317d5ba8b5cf72b1f4a6668f6
|
||||||
R 33225661bd52597ad2aaeac8ae83129d
|
R 7e8e2aceb29a9b78ef373006c69590e7
|
||||||
U drh
|
U drh
|
||||||
Z dddf4f7b316491b40bac25a13a27215d
|
Z 57f75659f99699708c34bb9af2294488
|
||||||
|
@ -1 +1 @@
|
|||||||
2d2b3c4951dc2b8317d5ba8b5cf72b1f4a6668f6
|
46d040591f27be01b1860344f8a268797fe344f4
|
@ -3928,6 +3928,7 @@ static int whereLoopAddBtreeIndex(
|
|||||||
&& saved_nEq==saved_nSkip
|
&& saved_nEq==saved_nSkip
|
||||||
&& saved_nEq+1<pProbe->nKeyCol
|
&& saved_nEq+1<pProbe->nKeyCol
|
||||||
&& pProbe->aiRowEst[saved_nEq+1]>=18 /* TUNING: Minimum for skip-scan */
|
&& pProbe->aiRowEst[saved_nEq+1]>=18 /* TUNING: Minimum for skip-scan */
|
||||||
|
&& (rc = whereLoopResize(db, pNew, pNew->nLTerm+1))==SQLITE_OK
|
||||||
){
|
){
|
||||||
LogEst nIter;
|
LogEst nIter;
|
||||||
pNew->u.btree.nEq++;
|
pNew->u.btree.nEq++;
|
||||||
|
@ -187,4 +187,26 @@ do_execsql_test skipscan1-3.2sort {
|
|||||||
SELECT a,b,c,d,'|' FROM t3 WHERE b=345 ORDER BY a;
|
SELECT a,b,c,d,'|' FROM t3 WHERE b=345 ORDER BY a;
|
||||||
} {~/*ORDER BY*/}
|
} {~/*ORDER BY*/}
|
||||||
|
|
||||||
|
# Ticket 520070ec7fbaac: Array overrun in the skip-scan optimization
|
||||||
|
# 2013-12-22
|
||||||
|
#
|
||||||
|
do_execsql_test skipscan1-4.1 {
|
||||||
|
CREATE TABLE t4(a,b,c,d,e,f,g,h,i);
|
||||||
|
CREATE INDEX t4all ON t4(a,b,c,d,e,f,g,h);
|
||||||
|
INSERT INTO t4 VALUES(1,2,3,4,5,6,7,8,9);
|
||||||
|
ANALYZE;
|
||||||
|
DELETE FROM sqlite_stat1;
|
||||||
|
INSERT INTO sqlite_stat1
|
||||||
|
VALUES('t4','t4all','655360 163840 40960 10240 2560 640 160 40 10');
|
||||||
|
ANALYZE sqlite_master;
|
||||||
|
SELECT i FROM t4 WHERE a=1;
|
||||||
|
SELECT i FROM t4 WHERE b=2;
|
||||||
|
SELECT i FROM t4 WHERE c=3;
|
||||||
|
SELECT i FROM t4 WHERE d=4;
|
||||||
|
SELECT i FROM t4 WHERE e=5;
|
||||||
|
SELECT i FROM t4 WHERE f=6;
|
||||||
|
SELECT i FROM t4 WHERE g=7;
|
||||||
|
SELECT i FROM t4 WHERE h=8;
|
||||||
|
} {9 9 9 9 9 9 9 9}
|
||||||
|
|
||||||
finish_test
|
finish_test
|
||||||
|
Loading…
Reference in New Issue
Block a user