diff options
author | drh <drh@noemail.net> | 2019-02-22 23:29:56 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2019-02-22 23:29:56 +0000 |
commit | 50ef6716d2ac75314e76546d074efd694969dba2 (patch) | |
tree | e7cb12d636e2087291c254ab391201391113f5aa /src/insert.c | |
parent | bc0a55cf0b4c47fbb551583bfda3ed5a1d57d453 (diff) | |
download | sqlite-50ef6716d2ac75314e76546d074efd694969dba2.tar.gz sqlite-50ef6716d2ac75314e76546d074efd694969dba2.zip |
Make all ephemeral tables built to hold the RHS of an IN operator be
index-btrees, never table-btrees, regardless of whether or not they are
used as IN_INDEX_LOOP or IN_INDEX_MEMBERSHIP. That way, the same ephmerial
table can be reused for both cases.
FossilOrigin-Name: c2d50df8fd1a1fdae6226a3e77296ded09b53a74540caedd4868e686a93cbc10
Diffstat (limited to 'src/insert.c')
-rw-r--r-- | src/insert.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/insert.c b/src/insert.c index 6f044db5a..a68db1a1d 100644 --- a/src/insert.c +++ b/src/insert.c @@ -1921,10 +1921,13 @@ void sqlite3CompleteInsertion( pik_flags |= (update_flags & OPFLAG_SAVEPOSITION); #ifdef SQLITE_ENABLE_PREUPDATE_HOOK if( update_flags==0 ){ - sqlite3VdbeAddOp4(v, OP_InsertInt, - iIdxCur+i, aRegIdx[i], 0, (char*)pTab, P4_TABLE + int r = sqlite3GetTempReg(pParse); + sqlite3VdbeAddOp2(v, OP_Integer, 0, r); + sqlite3VdbeAddOp4(v, OP_Insert, + iIdxCur+i, aRegIdx[i], r, (char*)pTab, P4_TABLE ); sqlite3VdbeChangeP5(v, OPFLAG_ISNOOP); + sqlite3ReleaseTempReg(pParse, r); } #endif } |