]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a faulty assert() in the SELECT code generator and add a test case
authordrh <drh@noemail.net>
Mon, 4 May 2015 16:09:34 +0000 (16:09 +0000)
committerdrh <drh@noemail.net>
Mon, 4 May 2015 16:09:34 +0000 (16:09 +0000)
to prevent regression.

FossilOrigin-Name: 1421c8ffba179d6aafa2643012f80a2738779117

manifest
manifest.uuid
src/select.c
test/select4.test

index 35335151e4566ce66f6a83621f8d5a2db7aa6d7a..dc77d0f3b5c342873558af9022372a1960c534de 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sbug\sin\s--changeset\soutput\sfor\ssqldiff.exe\sfor\sfloating-point\svalues.\nAlso\sfix\sharmless\scompiler\swarnings\sin\ssqldiff.exe.
-D 2015-05-04T15:04:47.871
+C Fix\sa\sfaulty\sassert()\sin\sthe\sSELECT\scode\sgenerator\sand\sadd\sa\stest\scase\nto\sprevent\sregression.
+D 2015-05-04T16:09:34.295
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in e628c50e237251fc7e768bef14ee7e822ad69e69
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -230,7 +230,7 @@ F src/printf.c 1f87c24770b2cea3fadbec03bfb6bdcbd353802c
 F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
 F src/resolve.c 13109bc3b5ab404446296efa17039640de5bc35d
 F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e
-F src/select.c 5e83049a0be1caf88921e815d0118bce49cba827
+F src/select.c 1b0bfc7d59e48c26b895a6b719157111a617d9e3
 F src/shell.c b1e17be8565b5ce4138707d2808df077bf9750d9
 F src/sqlite.h.in ca27603a36fcacdaac5a19d8ee35aaff8ce8516f
 F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
@@ -843,7 +843,7 @@ F test/securedel2.test 2d54c28e46eb1fd6902089958b20b1b056c6f1c5
 F test/select1.test be62204d2bd9a5a8a149e9974cfddce893d8f686
 F test/select2.test 352480e0e9c66eda9c3044e412abdf5be0215b56
 F test/select3.test 2ce595f8fb8e2ac10071d3b4e424cadd4634a054
-F test/select4.test 48e14766d98b744b2202cca6d4679bf7ef3784c8
+F test/select4.test ac1cd55264a43872b49efac3a4f01a95ab6c6d50
 F test/select5.test e758b8ef94f69b111df4cb819008856655dcd535
 F test/select6.test 39eac4a5c03650b2b473c532882273283ee8b7a0
 F test/select7.test 7fd2ef598cfabb6b9ff6ac13973b91d0527df49d
@@ -1256,7 +1256,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P a117e8f6bd60ed7f6e4cdcd2ee8d624fe040f7ab
-R 06db280fea07927d5f126c64abb732cd
+P 9f428530f9a6cb54f0a2fc3e666c38c7c093558a
+R 48808945fe5696b2fff2e789a5a0575d
 U drh
-Z 08e1b79b8e56094ae104d865394efda7
+Z f2542b1fa566b40c4e2710f436b29d54
index 9d8637050fd23a9a79279863a7eda520709a8163..029a7a80f2d188b57e37a42cbab58e240134fc04 100644 (file)
@@ -1 +1 @@
-9f428530f9a6cb54f0a2fc3e666c38c7c093558a
\ No newline at end of file
+1421c8ffba179d6aafa2643012f80a2738779117
\ No newline at end of file
index 5de58f9a27e040828c4bed07cdfeac04a19a204d..beb52c77e68bd2a4830d99c0364bbce43f54a7c3 100644 (file)
@@ -2603,7 +2603,7 @@ static int generateOutputSubroutine(
     */
     case SRT_Set: {
       int r1;
-      assert( pIn->nSdst==1 );
+      assert( pIn->nSdst==1 || pParse->nErr>0 );
       pDest->affSdst = 
          sqlite3CompareAffinity(p->pEList->a[0].pExpr, pDest->affSdst);
       r1 = sqlite3GetTempReg(pParse);
index 42c61d92ad981ba02377e9bf2fb7814653d35a55..a1619e59caabd03fc3bf5c8a7f8802bd1b422e06 100644 (file)
@@ -274,6 +274,16 @@ do_test select4-4.3 {
   }} msg]
   lappend v $msg
 } {1 {ORDER BY clause should come after INTERSECT not before}}
+do_catchsql_test select4-4.4 {
+  SELECT 3 IN (
+    SELECT 0 ORDER BY 1
+    INTERSECT
+    SELECT 1
+    INTERSECT 
+    SELECT 2
+    ORDER BY 1
+  );
+} {1 {ORDER BY clause should come after INTERSECT not before}}
 
 # Various error messages while processing UNION or INTERSECT
 #