diff options
author | dan <dan@noemail.net> | 2019-03-19 11:56:39 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2019-03-19 11:56:39 +0000 |
commit | e5166e070a6590c40ca99ca66d0d97ea37e0b1cd (patch) | |
tree | d644515575868bce390aab1f14e0e6be432596bd /src/window.c | |
parent | d430c2eb46e0fd8ce179037d12f68b8125d24a25 (diff) | |
download | sqlite-e5166e070a6590c40ca99ca66d0d97ea37e0b1cd.tar.gz sqlite-e5166e070a6590c40ca99ca66d0d97ea37e0b1cd.zip |
Revert the OP_MustBeInt opcode implementation on this branch so that it again matches trunk. The extra functionality is no longer required.
FossilOrigin-Name: c02f77b1b4d025d4243f883d6f3a2b3abcaf4944e0209f641b62c576415343dc
Diffstat (limited to 'src/window.c')
-rw-r--r-- | src/window.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/window.c b/src/window.c index 6474de2be..62bfdafb0 100644 --- a/src/window.c +++ b/src/window.c @@ -1302,8 +1302,14 @@ static void windowCheckValue(Parse *pParse, int reg, int eCond){ int regZero = sqlite3GetTempReg(pParse); assert( eCond>=0 && eCond<ArraySize(azErr) ); sqlite3VdbeAddOp2(v, OP_Integer, 0, regZero); - sqlite3VdbeAddOp2(v, OP_MustBeInt, reg, sqlite3VdbeCurrentAddr(v)+2); - if( eCond>=WINDOW_STARTING_NUM ) sqlite3VdbeChangeP5(v, 1); + if( eCond>=WINDOW_STARTING_NUM ){ + int regString = sqlite3GetTempReg(pParse); + sqlite3VdbeAddOp4(v, OP_String8, 0, regString, 0, "", P4_STATIC); + sqlite3VdbeAddOp3(v, OP_Ge, regString, sqlite3VdbeCurrentAddr(v)+2, reg); + sqlite3VdbeChangeP5(v, SQLITE_AFF_NUMERIC); + }else{ + sqlite3VdbeAddOp2(v, OP_MustBeInt, reg, sqlite3VdbeCurrentAddr(v)+2); + } VdbeCoverageIf(v, eCond==0); VdbeCoverageIf(v, eCond==1); VdbeCoverageIf(v, eCond==2); |