aboutsummaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2019-03-19 11:56:39 +0000
committerdan <dan@noemail.net>2019-03-19 11:56:39 +0000
commite5166e070a6590c40ca99ca66d0d97ea37e0b1cd (patch)
treed644515575868bce390aab1f14e0e6be432596bd /src/window.c
parentd430c2eb46e0fd8ce179037d12f68b8125d24a25 (diff)
downloadsqlite-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.c10
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);