]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Candidate fix for ticket [d02e1406a58ea02].
authordrh <drh@noemail.net>
Thu, 4 Oct 2012 16:00:24 +0000 (16:00 +0000)
committerdrh <drh@noemail.net>
Thu, 4 Oct 2012 16:00:24 +0000 (16:00 +0000)
FossilOrigin-Name: 81fd941da62956e32d1c4ffcdb39abecba7a6f3b

manifest
manifest.uuid
src/where.c
test/whereD.test

index 2d15cfc189db900fd860d9ef0d6e5a8ceb218559..d632a32253ed2932592290627caf798511923d63 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Increase\sthe\sversion\snumber\sto\s3.7.14.1.\s\sThe\sversion\sof\sautoconf\sused\sis\ndifferent\sfrom\sthe\sprevious\srelease\sso\sthere\sare\shuge\sdifferences\sin\sthe\ngenerated\s"configure"\sscript.
-D 2012-10-04T15:36:03.876
+C Candidate\sfix\sfor\sticket\s[d02e1406a58ea02].
+D 2012-10-04T16:00:24.836
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in abd5c10d21d1395f140d9e50ea999df8fa4d6376
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -251,7 +251,7 @@ F src/vtab.c d2c54fd22aa83eb34fc6f7cd9b097f2fc2b1e9de
 F src/wal.c 5acb3e7bbd31f10ba39acad9ce6b399055337a9d
 F src/wal.h 29c197540b19044e6cd73487017e5e47a1d3dac6
 F src/walker.c 3d75ba73de15e0f8cd0737643badbeb0e002f07b
-F src/where.c 22783f4275f6fc09b663115a6091837cb5c510e0
+F src/where.c e74f9ed463b0153e7f2a0e5f291c2be16ae76b35
 F test/8_3_names.test 631ea964a3edb091cf73c3b540f6bcfdb36ce823
 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
 F test/aggnested.test 0be144b453e0622a085fae8665c32f5676708e00
@@ -966,7 +966,7 @@ F test/where9.test ae98dc22ef9b6f2bc81e9f164e41b38faa9bda06
 F test/whereA.test 24c234263c8fe358f079d5e57d884fb569d2da0a
 F test/whereB.test 0def95db3bdec220a731c7e4bec5930327c1d8c5
 F test/whereC.test 13ff5ec0dba407c0e0c075980c75b3275a6774e5
-F test/whereD.test 304ccbe3c77e0d0764f37c91d43b8c4792a5e02f
+F test/whereD.test 11945e79899a97958d87d1e5ac6ae5abd827356b
 F test/wherelimit.test 5e9fd41e79bb2b2d588ed999d641d9c965619b31
 F test/win32lock.test b2a539e85ae6b2d78475e016a9636b4451dc7fb9
 F test/zeroblob.test caaecfb4f908f7bc086ed238668049f96774d688
@@ -1014,7 +1014,7 @@ F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
 F tool/win/sqlite.vsix 67d8a99aceb56384a81b3f30d6c71743146d2cc9
-P 9bf64b6612c243ea66d04f502dc23f875ad45cd8
-R 073a340cb8e4b5d7bc2abb2bb9cb8ced
+P 972dbd5fccaa0dbde0a7ad904da74e31888e5062
+R a82bf185a73888ab1f23d02429bade9e
 U drh
-Z 32430ae0fe21d7aa54caae8c8fa4f7de
+Z 9ae1686498486fc9c672c468947102ba
index 27cd4e8e4fb657b4711b8f581cdcbe60a38c7089..75f40f8c53ba352a8a3c6a637e2b7707d6af9c7d 100644 (file)
@@ -1 +1 @@
-972dbd5fccaa0dbde0a7ad904da74e31888e5062
\ No newline at end of file
+81fd941da62956e32d1c4ffcdb39abecba7a6f3b
\ No newline at end of file
index 9bbbd43d1073f152dbd9d4bc65945c67a9e8b780..216a47fbe3f4e4df20562a1d407b920ed01a35d5 100644 (file)
@@ -4447,7 +4447,7 @@ static Bitmask codeOneLoopStart(
       }
     }
     pLevel->u.pCovidx = pCov;
-    pLevel->iIdxCur = iCovCur;
+    if( pCov ) pLevel->iIdxCur = iCovCur;
     if( pAndExpr ){
       pAndExpr->pLeft = 0;
       sqlite3ExprDelete(pParse->db, pAndExpr);
index 99428901803a9b18ad098b31fd6a3bb3c248fe67..58fe93462ab6fbe68b05631cb49cbf4a5d9f8f08 100644 (file)
@@ -161,4 +161,29 @@ do_searchcount_test 3.5.2 {
   SELECT a, c FROM t3 WHERE (a=1 AND b='one') OR rowid=4
 } {1 i 2 ii search 2}
 
+# Ticket [d02e1406a58ea02d] (2012-10-04)
+# LEFT JOIN with an OR in the ON clause causes segfault 
+#
+do_test 4.1 {
+  db eval {
+    CREATE TABLE t41(a,b,c);
+    INSERT INTO t41 VALUES(1,2,3), (4,5,6);
+    CREATE TABLE t42(d,e,f);
+    INSERT INTO t42 VALUES(3,6,9), (4,8,12);
+    SELECT * FROM t41 AS x LEFT JOIN t42 AS y ON (y.d=x.c) OR (y.e=x.b);
+  }
+} {1 2 3 3 6 9 4 5 6 {} {} {}}
+do_test 4.2 {
+  db eval {
+    CREATE INDEX t42d ON t42(d);
+    CREATE INDEX t42e ON t42(e);
+    SELECT * FROM t41 AS x LEFT JOIN t42 AS y ON (y.d=x.c) OR (y.e=x.b);
+  }
+} {1 2 3 3 6 9 4 5 6 {} {} {}}
+do_test 4.2 {
+  db eval {
+    SELECT * FROM t41 AS x LEFT JOIN t42 AS y ON (y.d=x.c) OR (y.d=x.b);
+  }
+} {1 2 3 3 6 9 4 5 6 {} {} {}}
+
 finish_test