From: drh <> Date: Sat, 10 Aug 2024 14:53:21 +0000 (+0000) Subject: Fix behavior change in the offset() SQL function introduced by X-Git-Tag: version-3.47.0~238 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6010980914207275bcc82e58e534d2923667f631;p=thirdparty%2Fsqlite.git Fix behavior change in the offset() SQL function introduced by check-in [f0b671183f44d0ae]. FossilOrigin-Name: c2ac17f183082d6388336338b8d5c0b334095e5f77a27bc08419431f37471d22 --- diff --git a/manifest b/manifest index 8f752559c5..6396d44aca 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Enhancements\sto\scovering-index\sprediction.\s\sIn\sparticular,\savoid\sthe\nfalse-positive\sprediction\sdescribed\sby\n[forum:/forumpost/e60e4c295d22f8ce|forum\spost\se60e4c295d22f8ce].\nAdd\searly\sdetection\sof\sover-prediction\sof\scovering-indexes\sso\sthat\nsqlite3_prepare()\swill\sreturn\san\serror\srather\sthan\sjust\sgenerate\sbad\nbytecode. -D 2024-08-10T10:05:22.244 +C Fix\sbehavior\schange\sin\sthe\soffset()\sSQL\sfunction\sintroduced\sby\s\ncheck-in\s[f0b671183f44d0ae]. +D 2024-08-10T14:53:21.552 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -846,7 +846,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 F src/wal.c 887fc4ca3f020ebb2e376f222069570834ac63bf50111ef0cbf3ae417048ed89 F src/wal.h ba252daaa94f889f4b2c17c027e823d9be47ce39da1d3799886bbd51f0490452 F src/walker.c 7c7ea0115345851c3da4e04e2e239a29983b61fb5b038b94eede6aba462640e2 -F src/where.c 5fa17ec4e344e57cf43dd7b2977c95a518bfc2d43edb42df0cd1d5c2b42cee04 +F src/where.c 3556ef464ac78f4730f40c085aa0b6729ffe44306c0daaaffe9370c981a66d1d F src/whereInt.h 002adc3aa2cc10733b9b27958fdbe893987cd989fab25a9853941c1f9b9b0a65 F src/wherecode.c c9cac0b0b8e809c5e7e79d7796918907fb685ad99be2aaa9737f9787aa47349c F src/whereexpr.c 7d0d34b42b9edfd8e8ca66beb3a6ef63fe211c001af54caf2ccbcd989b783290 @@ -2204,9 +2204,8 @@ F vsixtest/vsixtest.tcl 6195aba1f12a5e10efc2b8c0009532167be5e301abe5b31385638080 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 2502339339f3c831966479a400c2b1a531fb4d990b1776b4dc4870cf734c3fcd 1de3e5883613ff6093203720f3cdcf6b3a3e626c99735284fae95a438e1ce24f -R aaaa5a801913afe54fe71ced56170454 -T +closed 1de3e5883613ff6093203720f3cdcf6b3a3e626c99735284fae95a438e1ce24f +P f0b671183f44d0ae294956e7651a1653f47bd6219f9636872d15993f30f28dfb +R df8366cfe7188a7576fdab4cc318948f U drh -Z ad30efef8eafa3ff536c4ae2785bb388 +Z 7afdd89a9e0f36ed074dbb50e50b24a5 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index e7d37495c7..dd5d8ea8dd 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f0b671183f44d0ae294956e7651a1653f47bd6219f9636872d15993f30f28dfb +c2ac17f183082d6388336338b8d5c0b334095e5f77a27bc08419431f37471d22 diff --git a/src/where.c b/src/where.c index 15f5fe7d96..98e9f117f9 100644 --- a/src/where.c +++ b/src/where.c @@ -7358,20 +7358,18 @@ void sqlite3WhereEnd(WhereInfo *pWInfo){ assert( pIdx->pTable==pTab ); #ifdef SQLITE_ENABLE_OFFSET_SQL_FUNC if( pOp->opcode==OP_Offset ){ - x = 0; + /* Do not need to translate the column number */ }else #endif - { - if( !HasRowid(pTab) ){ - Index *pPk = sqlite3PrimaryKeyIndex(pTab); - x = pPk->aiColumn[x]; - assert( x>=0 ); - }else{ - testcase( x!=sqlite3StorageColumnToTable(pTab,x) ); - x = sqlite3StorageColumnToTable(pTab,x); - } - x = sqlite3TableColumnToIndex(pIdx, x); + if( !HasRowid(pTab) ){ + Index *pPk = sqlite3PrimaryKeyIndex(pTab); + x = pPk->aiColumn[x]; + assert( x>=0 ); + }else{ + testcase( x!=sqlite3StorageColumnToTable(pTab,x) ); + x = sqlite3StorageColumnToTable(pTab,x); } + x = sqlite3TableColumnToIndex(pIdx, x); if( x>=0 ){ pOp->p2 = x; pOp->p1 = pLevel->iIdxCur;