]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add a missing OP_ColumnsUsed opcode to code for expressions like "? IN (SELECT ....
authordan <dan@noemail.net>
Thu, 16 Jun 2016 17:14:02 +0000 (17:14 +0000)
committerdan <dan@noemail.net>
Thu, 16 Jun 2016 17:14:02 +0000 (17:14 +0000)
FossilOrigin-Name: 0b1579caf06a2c42433b8bc9dc28c9ad381aa07c

manifest
manifest.uuid
src/expr.c

index 086230a5e99ad2679d559e6b304ad865a6d4e0ef..b6450cc841cc6067634bae436d7edac642cf9620 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\stypo\sin\sa\scomment\son\sthe\sSrcList\sobject.
-D 2016-06-16T11:16:53.415
+C Add\sa\smissing\sOP_ColumnsUsed\sopcode\sto\scode\sfor\sexpressions\slike\s"?\sIN\s(SELECT\s...)"\sin\scases\swhere\sexpression\scan\suse\san\sindex\sthat\smay\scontain\sNULL\svalues.
+D 2016-06-16T17:14:02.375
 F Makefile.in f3f7d2060ce03af4584e711ef3a626ef0b1d6340
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 50149765ef72f4e652b9a0f1f6462c4784bb9423
@@ -336,7 +336,7 @@ F src/ctime.c 61949e83c4c36e37195a8398ebc752780b534d95
 F src/date.c 1cc9fb516ec9932c6fd4d2a0d2f8bc4480145c39
 F src/dbstat.c 4f6f7f52b49beb9636ffbd517cfe44a402ba4ad0
 F src/delete.c 4aba4214a377ce8ddde2d2e609777bcc8235200f
-F src/expr.c 798146ea4c87d723e8a157d88450ac9c43256998
+F src/expr.c 523a5b1db2b6d88c6eefb224877bf635a3bcfc92
 F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
 F src/fkey.c bc4145347595b7770f9a598cff1c848302cf5413
 F src/func.c 61a4114cf7004f10c542cfabbab9f2bcb9033045
@@ -1501,7 +1501,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 0230ca17ba20ecd3d213788ad6891973d52a7b72
-R 1a1c29c9329c6a84a9521e4c335dbb95
-U drh
-Z 2cdcc0a9545b2084d273426178a84d04
+P 48b555c42de1cbc031fb6c2c93ef170e491c7d76
+R 7c056b92500e212b6fa7144618e1e6e0
+U dan
+Z 6cf13efbb72ea4474e244da36e8952f1
index 7714859290264158f515666b86a5e6ff9e2dcec6..6347d15d5fcf187474cc89aa9f9815f11fc78769 100644 (file)
@@ -1 +1 @@
-48b555c42de1cbc031fb6c2c93ef170e491c7d76
\ No newline at end of file
+0b1579caf06a2c42433b8bc9dc28c9ad381aa07c
\ No newline at end of file
index c6a09d9d9d33806c0fd5d9f0bf436945a37ea124..ce3a4765616c35e69d47e1a90895920ac319adb6 100644 (file)
@@ -1818,6 +1818,11 @@ int sqlite3FindInIndex(Parse *pParse, Expr *pX, u32 inFlags, int *prRhsHasNull){
           eType = IN_INDEX_INDEX_ASC + pIdx->aSortOrder[0];
 
           if( prRhsHasNull && !pTab->aCol[iCol].notNull ){
+#ifdef SQLITE_ENABLE_COLUMN_USED_MASK
+            const i64 sOne = 1;
+            sqlite3VdbeAddOp4Dup8(v, OP_ColumnsUsed, 
+                iTab, 0, 0, (u8*)&sOne, P4_INT64);
+#endif
             *prRhsHasNull = ++pParse->nMem;
             sqlite3SetHasNullFlag(v, iTab, *prRhsHasNull);
           }