mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-08 14:02:16 +03:00
Change the code generator for the IN operator so that it avoids creating
OP_Eq and OP_Ne opcode with the same P1 and P3 arguments. This enables us to back out check-in [ddb17d92df194337] and also fix ticket [188f912b51cd802]. FossilOrigin-Name: 9ab985a9c8160b905730678f40ed440a246cdec549c798bafefaed5abbc0437f
This commit is contained in:
@@ -2028,7 +2028,12 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */
|
||||
if( (flags1 | flags3)&MEM_Str ){
|
||||
if( (flags1 & (MEM_Int|MEM_IntReal|MEM_Real|MEM_Str))==MEM_Str ){
|
||||
applyNumericAffinity(pIn1,0);
|
||||
testcase( flags3!=pIn3->flags );
|
||||
assert( flags3==pIn3->flags );
|
||||
/* testcase( flags3!=pIn3->flags );
|
||||
** this used to be possible with pIn1==pIn3, but not since
|
||||
** the column cache was removed. The following assignment
|
||||
** is essentially a no-op. But, it provides defense-in-depth
|
||||
** in case our analysis is incorrect, so it is left in. */
|
||||
flags3 = pIn3->flags;
|
||||
}
|
||||
if( (flags3 & (MEM_Int|MEM_IntReal|MEM_Real|MEM_Str))==MEM_Str ){
|
||||
|
Reference in New Issue
Block a user