]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Ephemeral tables used to hold manifested views may not be unordered since
authordrh <drh@noemail.net>
Fri, 26 Feb 2016 04:13:39 +0000 (04:13 +0000)
committerdrh <drh@noemail.net>
Fri, 26 Feb 2016 04:13:39 +0000 (04:13 +0000)
they might be subject to an ordered comparison if they are part of a join.

FossilOrigin-Name: 3ef6a3153267d5328202fea24fd29ff4d5409295

manifest
manifest.uuid
src/select.c
src/vdbeInt.h
test/misc8.test

index 38c37f9331b7c06249b97a9c9c387acddbc15268..c74fbbede1899392e4bcd7bd50fe54721699628f 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\sa\sdebuggin\s"exit"\scommand\smistakenly\sleft\sin\sthe\s"where.test"\smodule.
-D 2016-02-26T04:04:07.156
+C Ephemeral\stables\sused\sto\shold\smanifested\sviews\smay\snot\sbe\sunordered\ssince\nthey\smight\sbe\ssubject\sto\san\sordered\scomparison\sif\sthey\sare\spart\sof\sa\sjoin.
+D 2016-02-26T04:13:39.081
 F Makefile.in 4e90dc1521879022aa9479268a4cd141d1771142
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 28fc4ee02333996d31b3602b39eeb8e609a89ce4
@@ -349,7 +349,7 @@ F src/printf.c 63e6fb12bbe702dd664dc3703776c090383a5a26
 F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
 F src/resolve.c b8f7174e5f8c33c44ded3a25a973d0bb89228c20
 F src/rowset.c 9fe4b3ad7cc00944386bb600233d8f523de07a6e
-F src/select.c dbc73a63bee99bf7cfac6052477ffc21e899bb08
+F src/select.c 1bacfde7b7cec134d2b354cbcf67bafc67078431
 F src/shell.c 89b73e894e737cc2f21e4bce0feb3ea21cc61124
 F src/sqlite.h.in a7caa805a345d6a14136c11ccfa6f4c1a6ef6e7b
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
@@ -416,7 +416,7 @@ F src/util.c 6ed9d7bdd3b0a30742027b6d8e8e1a9e2b14f373
 F src/vacuum.c feb1eabb20987983d9350cad98299b21fa811f52
 F src/vdbe.c 87ae3a5657fefed7875f3eb30e7ababd48013d71
 F src/vdbe.h c743791f723049db94f009e3e30958952bc2d512
-F src/vdbeInt.h 84827a809229917fdd3cc05af719dbb61314a5a3
+F src/vdbeInt.h 49a74fe5ece206d2d8666ba9afaf1abeda5f123b
 F src/vdbeapi.c 95b1f8e527240a18a9aea41a655b013bf07a7009
 F src/vdbeaux.c 2c15cf88de4df97428318c8cfac0dea873dae451
 F src/vdbeblob.c 3b570b730109e8f653d9d2081649f6e7015113db
@@ -897,7 +897,7 @@ F test/misc4.test 0d8be3466adf123a7791a66ba2bc8e8d229e87f3
 F test/misc5.test f96428ea95b3820aafc6f1c50cf48a09e4597ee1
 F test/misc6.test 953cc693924d88e6117aeba16f46f0bf5abede91
 F test/misc7.test edd0b63e2ee29a256900b0514f6fff27e19e9bb2
-F test/misc8.test fc2754d38892f7dac30c22db3616c2764f117d66
+F test/misc8.test 21ac9d35a5e110279ae9e1588b8914f54de1c60b
 F test/misuse.test 3c34719944ba045cc6c188a4852ba04680728912
 F test/mmap1.test 44a5ff1c1bcc7dcf2de50227d1f997e75a8ef1ae
 F test/mmap2.test 9d6dd9ddb4ad2379f29cc78f38ce1e63ed418022
@@ -1450,7 +1450,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P c871473ffee6dbb0f5b47f1c1329c84b902368ae
-R 6fc01093db6658e430bdeb2c14b7bd88
+P beda0b8c76c2c7328a44156257c978cf8f5df59b
+R 5d471132c02d748b5b7a9c957a1aab1e
 U drh
-Z 4d54711e77d505069a1e93ab6ffa4de0
+Z 02d11a44d61806b13a4d06a9e5d2f12b
index 368053ee95290f29ddedf99a133e6909da403d55..18803bd46fb3780e12747c1aa19a3ac9e8a113d4 100644 (file)
@@ -1 +1 @@
-beda0b8c76c2c7328a44156257c978cf8f5df59b
\ No newline at end of file
+3ef6a3153267d5328202fea24fd29ff4d5409295
\ No newline at end of file
index bde278b43c44f16b7be7952afcf8e98b915dc4c8..aa1f21485588dd8ff32fbd92dd4f7752d8cb6f3d 100644 (file)
@@ -2225,7 +2225,6 @@ static int multiSelect(
   if( dest.eDest==SRT_EphemTab ){
     assert( p->pEList );
     sqlite3VdbeAddOp2(v, OP_OpenEphemeral, dest.iSDParm, p->pEList->nExpr);
-    sqlite3VdbeChangeP5(v, BTREE_UNORDERED);
     dest.eDest = SRT_Table;
   }
 
index 710c725e62c0c569f0a50616c0353a02675a304b..b53952fd44bbaca9a23e8ee3bd0e2166d0bdbd26 100644 (file)
@@ -87,7 +87,7 @@ struct VdbeCursor {
 #endif
   Bool isEphemeral:1;   /* True for an ephemeral table */
   Bool useRandomRowid:1;/* Generate new record numbers semi-randomly */
-  Bool isOrdered:1;     /* True if the underlying table is BTREE_UNORDERED */
+  Bool isOrdered:1;     /* True if the table is not BTREE_UNORDERED */
   Pgno pgnoRoot;        /* Root page of the open btree cursor */
   i16 nField;           /* Number of fields in the header */
   u16 nHdrParsed;       /* Number of header fields parsed so far */
index 3ff52e56f1e203b31fead02be4d910ce6fe4820a..3817cadf946d41f285dfa8b95a76ff9230a4cdd9 100644 (file)
@@ -94,5 +94,18 @@ do_execsql_test misc8-2.1 {
   0 10 {} 10 {} {}
 }
 
+# 2016-02-26: An assertion fault found by the libFuzzer project
+#
+do_execsql_test misc8-3.0 {
+  SELECT *
+    FROM
+         (
+           (SELECT 0 AS i) AS x1,
+           (SELECT 1) AS x2
+         ) AS x3,
+         (SELECT 6 AS j UNION ALL SELECT 7) AS x4
+   WHERE i<rowid
+   ORDER BY 1;
+} {0 1 6 0 1 7}
 
 finish_test