]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix behavior change in the offset() SQL function introduced by
authordrh <>
Sat, 10 Aug 2024 14:53:21 +0000 (14:53 +0000)
committerdrh <>
Sat, 10 Aug 2024 14:53:21 +0000 (14:53 +0000)
check-in [f0b671183f44d0ae].

FossilOrigin-Name: c2ac17f183082d6388336338b8d5c0b334095e5f77a27bc08419431f37471d22

manifest
manifest.uuid
src/where.c

index 8f752559c5358017fa3907d1db38ff144a54667e..6396d44aca7259434ce52acad046de268889350a 100644 (file)
--- 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.
index e7d37495c74bc828d106b27e0c77f7afca4612c3..dd5d8ea8dd43887ff8448d9ebc32556e90d03284 100644 (file)
@@ -1 +1 @@
-f0b671183f44d0ae294956e7651a1653f47bd6219f9636872d15993f30f28dfb
+c2ac17f183082d6388336338b8d5c0b334095e5f77a27bc08419431f37471d22
index 15f5fe7d96bba758494311d7d858fab29170c531..98e9f117f993d394ead1d1c8d0abf597f24ba39c 100644 (file)
@@ -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;