From 68748ec50924a77e19498766d5243851ca836d29 Mon Sep 17 00:00:00 2001 From: drh Date: Mon, 14 Oct 2019 20:32:31 +0000 Subject: [PATCH] Futher improvements to the IN operator for row-values on virtual tables. FossilOrigin-Name: bc751fb64d5b08e5ca4c85cd1c6fbf09590fa9dad7e176ba373082ea373655b5 --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/wherecode.c | 6 ++++-- test/fuzzdata8.db | Bin 1364992 -> 1371136 bytes 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/manifest b/manifest index 9f7e150ca6..da13312c73 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C New\stest\scases\sin\stest/fuzzdata8.db. -D 2019-10-14T15:24:20.778 +C Futher\simprovements\sto\sthe\sIN\soperator\sfor\srow-values\son\svirtual\stables. +D 2019-10-14T20:32:31.002 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -613,7 +613,7 @@ F src/wal.h 606292549f5a7be50b6227bd685fa76e3a4affad71bb8ac5ce4cb5c79f6a176a F src/walker.c d5a94907dcac990e31976be9dc769d17f6a806782593d6aec9d760ee01ec22cd F src/where.c 9f3f23efc45934e7b7ea6c0c1042420b73053e7c3264feef6faf9ce6fbd5df61 F src/whereInt.h 2c6bae136a7c0be6ff75dc36950d1968c67d005c8e51d7a9d77cb996bb4843d9 -F src/wherecode.c fde87356e0393d91cf29f27817ed02583e152517b5cc641cd0d0c94912a5603a +F src/wherecode.c e6173659b15105ab9cc62388ea83077587aec8b77622e6b1da7bac029334d411 F src/whereexpr.c 05c283d26aa9c3f5d1bf13a5f6a573b43295b9db280eff18e26f97d7d7f119b4 F src/window.c 064f251451c8e2a1c76b6269229d911a651e119c6a5f522b6eaebf8dc8714041 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 @@ -1015,7 +1015,7 @@ F test/fuzzdata4.db b502c7d5498261715812dd8b3c2005bad08b3a26e6489414bd13926cd3e4 F test/fuzzdata5.db e35f64af17ec48926481cfaf3b3855e436bd40d1cfe2d59a9474cb4b748a52a5 F test/fuzzdata6.db 92a80e4afc172c24f662a10a612d188fb272de4a9bd19e017927c95f737de6d7 F test/fuzzdata7.db e7a86fd83dda151d160445d542e32e5c6019c541b3a74c2a525b6ac640639711 -F test/fuzzdata8.db 14b531b71ba1fb5f86aa80b741f98867c2d25bd0731b966513e4af04700e2557 +F test/fuzzdata8.db 7a8baf778cbaf9c9744c9dd9b7aa66c4365d96c0ef8e1900e99a48a48f19778c F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14 F test/fuzzerfault.test 8792cd77fd5bce765b05d0c8e01b9edcf8af8536 @@ -1847,7 +1847,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 aa57d7abac0bb92d4d5fd4e093a11cf8efc04e4eed748b2a400d01f137250649 -R ca568602d34a734421b347284b3a3d99 +P 344d9cb0c726078af6deb4a26bed3aded5b26914bb286d3446d3a4e9150840b7 +R 2718afa6f840036afeb5adff293ecb86 U drh -Z d532a8411ac1d1ff35d5311fa4be383e +Z b3560113c59df505425231fe27d4299c diff --git a/manifest.uuid b/manifest.uuid index d53877e082..d83dff67ae 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -344d9cb0c726078af6deb4a26bed3aded5b26914bb286d3446d3a4e9150840b7 \ No newline at end of file +bc751fb64d5b08e5ca4c85cd1c6fbf09590fa9dad7e176ba373082ea373655b5 \ No newline at end of file diff --git a/src/wherecode.c b/src/wherecode.c index cf5ce5d4ae..3a8fba81bb 100644 --- a/src/wherecode.c +++ b/src/wherecode.c @@ -1305,6 +1305,7 @@ Bitmask sqlite3WhereCodeOneLoopStart( iIn = pLevel->u.in.nIn; for(j=nConstraint-1; j>=0; j--){ pTerm = pLoop->aLTerm[j]; + if( (pTerm->eOperator & WO_IN)!=0 ) iIn--; if( j<16 && (pLoop->u.vtab.omitMask>>j)&1 ){ disableTerm(pLevel, pTerm); }else if( (pTerm->eOperator & WO_IN)!=0 && @@ -1320,8 +1321,8 @@ Bitmask sqlite3WhereCodeOneLoopStart( ** encoding of the value in the register, so it *must* be reloaded. */ assert( pLevel->u.in.aInLoop!=0 || db->mallocFailed ); if( !db->mallocFailed ){ - assert( iIn>0 ); - pOp = sqlite3VdbeGetOp(v, pLevel->u.in.aInLoop[--iIn].addrInTop); + assert( iIn>=0 && iInu.in.nIn ); + pOp = sqlite3VdbeGetOp(v, pLevel->u.in.aInLoop[iIn].addrInTop); assert( pOp->opcode==OP_Column || pOp->opcode==OP_Rowid ); assert( pOp->opcode!=OP_Column || pOp->p3==iReg+j+2 ); assert( pOp->opcode!=OP_Rowid || pOp->p2==iReg+j+2 ); @@ -1345,6 +1346,7 @@ Bitmask sqlite3WhereCodeOneLoopStart( } } } + assert( iIn==0 || db->mallocFailed ); /* These registers need to be preserved in case there is an IN operator ** loop. So we could deallocate the registers here (and potentially ** reuse them later) if (pLoop->wsFlags & WHERE_IN_ABLE)==0. But it seems diff --git a/test/fuzzdata8.db b/test/fuzzdata8.db index 89406974898f29e8cac0e556157d009f8949fe4c..e024e6d627e997f393089741f9a34ccc5fded452 100644 GIT binary patch delta 23679 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 delta 22521 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