From: drh Date: Thu, 16 Dec 2010 19:52:52 +0000 (+0000) Subject: Fix an assertion fault that can only occur if SQLITE_ENABLE_STAT2 is defined X-Git-Tag: version-3.7.5~69 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4278d53efa42707c253fee9420c53e760307f17b;p=thirdparty%2Fsqlite.git Fix an assertion fault that can only occur if SQLITE_ENABLE_STAT2 is defined and the constant folding optimization is disabled using sqlite3_test_control(). Problem introduced by [ad8bc68197f2b4] but we missed it prior to the 3.7.4 release due to taking shortcuts and skipping tests in the release checklist. FossilOrigin-Name: 70a3d81742fcd481f83ccc8f7ff6af58bc29c4fa --- diff --git a/manifest b/manifest index 5130ec956c..9650e8ccdb 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,8 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -C Make\swal_checkpoint\sa\sno-op\sif\sa\sprior\scheckpoint\shas\salready\scopied\sall\s\nWAL\scontent\sinto\sthe\sdatabase.\s\sThis\sprevents\sa\sconcurrent\swrite\sto\sthe\ndatabase\sfrom\sresetting\sthe\swal-index\sout\sfrom\sunder\sthe\sWalIterator\sof\nthe\scheckpoint\sas\sit\sis\sinitializing. -D 2010-12-16T02:06:30 +C Fix\san\sassertion\sfault\sthat\scan\sonly\soccur\sif\sSQLITE_ENABLE_STAT2\sis\sdefined\nand\sthe\sconstant\sfolding\soptimization\sis\sdisabled\susing\ssqlite3_test_control().\nProblem\sintroduced\sby\s[ad8bc68197f2b4]\sbut\swe\smissed\sit\sprior\sto\sthe\s3.7.4\nrelease\sdue\sto\staking\sshortcuts\sand\sskipping\stests\sin\sthe\srelease\schecklist. +D 2010-12-16T19:52:53 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 4547616ad2286053af6ccccefa242dc925e49bf0 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -243,7 +243,7 @@ F src/vtab.c b297e8fa656ab5e66244ab15680d68db0adbec30 F src/wal.c dbca424f71678f663a286ab2a98f947af1d412a7 F src/wal.h c1aac6593a0b02b15dc625987e619edeab39292e F src/walker.c 3112bb3afe1d85dc52317cb1d752055e9a781f8f -F src/where.c fa22d45b2577c77146f2e894d58011d472d64103 +F src/where.c af069e6b53234118014dabfece96a9515b69d76b F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87 F test/all.test 51756962d522e474338e9b2ebb26e7364d4aa125 @@ -897,14 +897,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P d0e4375b8a784d4e4ae66caababac919edd61883 -R 80db019f1fe0898e29ee135039b02e42 +P cf86affcb7d3089496e9849cbf43a211097e4f64 +R 3de2e9f1840abc5aa813c8670b73846d U drh -Z b7c01cb05c8175ac2d3c285f2b41993d +Z 1060a236dbc52565455341e304a20640 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) -iD8DBQFNCXQpoxKgR168RlERAvhYAJ9VEC5cEqFcvoO8pUyjLqrkEx8osgCePOvl -dryfAhOPr5nP5lktpU/6FWo= -=UvbB +iD8DBQFNCm4ZoxKgR168RlERAiUbAJ4qrpq7mstZk9+svbST+q1EKzcnqACfZcXk +mdsfy827moHN92mPMgDc9TQ= +=f2T1 -----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index e14e633729..51060b8537 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -cf86affcb7d3089496e9849cbf43a211097e4f64 \ No newline at end of file +70a3d81742fcd481f83ccc8f7ff6af58bc29c4fa \ No newline at end of file diff --git a/src/where.c b/src/where.c index b8d1d6b276..4a5026f5f4 100644 --- a/src/where.c +++ b/src/where.c @@ -2315,10 +2315,9 @@ static int valueFromExpr( u8 aff, sqlite3_value **pp ){ - /* The evalConstExpr() function will have already converted any TK_VARIABLE - ** expression involved in an comparison into a TK_REGISTER. */ - assert( pExpr->op!=TK_VARIABLE ); - if( pExpr->op==TK_REGISTER && pExpr->op2==TK_VARIABLE ){ + if( pExpr->op==TK_VARIABLE + || (pExpr->op==TK_REGISTER && pExpr->op2==TK_VARIABLE) + ){ int iVar = pExpr->iColumn; sqlite3VdbeSetVarmask(pParse->pVdbe, iVar); /* IMP: R-23257-02778 */ *pp = sqlite3VdbeGetValue(pParse->pReprepare, iVar, aff);