Index: src/window.c ================================================================== --- src/window.c +++ src/window.c @@ -1594,19 +1594,21 @@ ** // The frame always consists of 0 rows ** regStart = regSize; ** } ** regEnd = regEnd - regStart; */ - if( pMWin->pEnd && pMWin->pStart && pMWin->eStart==TK_FOLLOWING ){ + if( pMWin->pEnd && pMWin->eStart==TK_FOLLOWING ){ + assert( pMWin->pStart!=0 ); assert( pMWin->eEnd==TK_FOLLOWING ); sqlite3VdbeAddOp3(v, OP_Ge, regStart, sqlite3VdbeCurrentAddr(v)+2, regEnd); VdbeCoverage(v); sqlite3VdbeAddOp2(v, OP_Copy, regSize, regStart); sqlite3VdbeAddOp3(v, OP_Subtract, regStart, regEnd, regEnd); } - if( pMWin->pEnd && pMWin->pStart && pMWin->eEnd==TK_PRECEDING ){ + if( pMWin->pStart && pMWin->eEnd==TK_PRECEDING ){ + assert( pMWin->pEnd!=0 ); assert( pMWin->eStart==TK_PRECEDING ); sqlite3VdbeAddOp3(v, OP_Le, regStart, sqlite3VdbeCurrentAddr(v)+3, regEnd); VdbeCoverage(v); sqlite3VdbeAddOp2(v, OP_Copy, regSize, regStart); sqlite3VdbeAddOp2(v, OP_Copy, regSize, regEnd);