diff options
author | dan <dan@noemail.net> | 2016-06-16 17:14:02 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2016-06-16 17:14:02 +0000 |
commit | 3480bfdae9523d3b2e67c4b594e79bab6ca7776b (patch) | |
tree | 4c80f951387731d758f2e4d7e96e2f24310af2c8 /src | |
parent | 6b922881198683f958227ca2c5682251dab9cb2a (diff) | |
download | sqlite-3480bfdae9523d3b2e67c4b594e79bab6ca7776b.tar.gz sqlite-3480bfdae9523d3b2e67c4b594e79bab6ca7776b.zip |
Add a missing OP_ColumnsUsed opcode to code for expressions like "? IN (SELECT ...)" in cases where expression can use an index that may contain NULL values.
FossilOrigin-Name: 0b1579caf06a2c42433b8bc9dc28c9ad381aa07c
Diffstat (limited to 'src')
-rw-r--r-- | src/expr.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/expr.c b/src/expr.c index c6a09d9d9..ce3a47656 100644 --- a/src/expr.c +++ b/src/expr.c @@ -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); } |