On 11/7/18, Jeremy Evans <c...@jeremyevans.net> wrote: > The following SQL causes a segmentation fault on:
Thank you for the bug report and reproducible test case. The problem actually had nothing to do with window functions. The use of window functions merely made the bug easier to hit. The bug has gone undetected in the code for over three years. It is now fixed on trunk. If you can, please download and compile the latest trunk version and let us know whether or not it is working better for you. If you do not want to download and compile from canonical sources, you can patch your "sqlite3.c" source file by removing a single line of code: --- sqlite3.c-baseline +++ sqlite3.c @@ -139937,21 +139937,20 @@ ); sqlite3VdbeAddOp2(v, OP_IdxInsert, pLevel->iIdxCur, regRecord); sqlite3VdbeChangeP5(v, OPFLAG_USESEEKRESULT); if( pPartial ) sqlite3VdbeResolveLabel(v, iContinue); if( pTabItem->fg.viaCoroutine ){ sqlite3VdbeChangeP2(v, addrCounter, regBase+n); testcase( pParse->db->mallocFailed ); translateColumnToCopy(pParse, addrTop, pLevel->iTabCur, pTabItem->regResult, 1); sqlite3VdbeGoto(v, addrTop); - pTabItem->fg.viaCoroutine = 0; /* REMOVE THIS LINE OF CODE */ }else{ sqlite3VdbeAddOp2(v, OP_Next, pLevel->iTabCur, addrTop+1); VdbeCoverage(v); } sqlite3VdbeChangeP5(v, SQLITE_STMTSTATUS_AUTOINDEX); sqlite3VdbeJumpHere(v, addrTop); sqlite3ReleaseTempReg(pParse, regRecord); /* Jump here when skipping the initialization */ sqlite3VdbeJumpHere(v, addrInit); -- D. Richard Hipp d...@sqlite.org _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users