]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Better orderByConsumed logic in the vt02.c test virtual table.
authordrh <>
Thu, 18 Dec 2025 15:35:50 +0000 (15:35 +0000)
committerdrh <>
Thu, 18 Dec 2025 15:35:50 +0000 (15:35 +0000)
FossilOrigin-Name: 612c1ece6752e3318fc688717ad6a82219b85df7d32e4e07dbc2f361a5aeeee4

manifest
manifest.uuid
test/vt02.c

index 07dd2b2bbb40f52a6285baa96c6b9e11cdb89dec..b2c6e2712b0b5640d8919d1e505c17c6eeb93ade 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Enhance\sthe\ssqlite3_load_extension()\sso\sthat\swhen\sthe\sentry\spoint\sis\nnot\sspecified,\safter\strying\ssqlite3_extension_init()\sand\nsqlite3_X_init()\swhere\sX\sis\sthe\salphabetic\spart\sof\sthe\sbase\sfilename,\nif\sneither\sor\sfound\sit\stries\sagain\swith\sX\sas\sthe\salpha*numeric*\spart\nof\sthe\sbase\sfilename.\s\sHence,\sa\sshared\slibrary\snamed\s"vt02.so"\scan\sbe\nloaded\swith\sjust\s".load\svt02"\sand\swithout\shaving\sto\sspecify\sthe\sentry\npoint\sseparately.
-D 2025-12-18T14:01:43.153
+C Better\sorderByConsumed\slogic\sin\sthe\svt02.c\stest\svirtual\stable.
+D 2025-12-18T15:35:50.492
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -1948,7 +1948,7 @@ F test/veryquick.test 57ab846bacf7b90cf4e9a672721ea5c5b669b661
 F test/view.test 3c23d7a068e9e4a0c4e6907498042772adea725f0630c3d9638ffd4e5a08b92b
 F test/view2.test db32c8138b5b556f610b35dfddd38c5a58a292f07fda5281eedb0851b2672679
 F test/view3.test ad8a8290ee2b55ff6ce66c9ef1ce3f1e47926273a3814e1c425293e128a95456
-F test/vt02.c 49f327ddd077c52eab87d20f8c7267fd9f716aa4bcb8f449a9b62e8d9e8b0c90
+F test/vt02.c e2eb2e576567bba5c0f7bd7fe1a267fe566f1422a55fcff6dda02012159ec95d
 F test/vt100-a.sql a3e188a118ca78c08b41681a4db6d0f353e554ceb33f1573b1872d16e2d30596
 F test/vtab1.test 09a72330d0f31eda2ffaa828b06a6b917fb86250ee72de0301570af725774c07
 F test/vtab2.test 14d4ab26cee13ba6cf5c5601b158e4f57552d3b055cdd9406cf7f711e9c84082
@@ -2187,8 +2187,8 @@ F tool/version-info.c 33d0390ef484b3b1cb685d59362be891ea162123cea181cb8e6d2cf6dd
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 35461a8d5a103e373e5b38b3974a3bb1074e914e862825108713b36bef04b6bd
-R 03be37b2ca34a6c5aca4479a28799054
+P acc95f24cc034408de1e9225aef4dae8bf76beec812c152bea32db95f7d2b854
+R 690b929b38217f93c8bcc4c1a9492cf4
 U drh
-Z 612207cbf12a182bbf761ed84fdbf21d
+Z 70ea1398d8aa129f5457ba79d55fdf37
 # Remove this line to create a well-formed Fossil manifest.
index b6fc4f94d650ab245ab1f432bcd0a18bfcbc1386..bdb13039ce0adfa357001ebea5fc8a272783ab32 100644 (file)
@@ -1 +1 @@
-acc95f24cc034408de1e9225aef4dae8bf76beec812c152bea32db95f7d2b854
+612c1ece6752e3318fc688717ad6a82219b85df7d32e4e07dbc2f361a5aeeee4
index e82549d6b0f0877cf4bfc606109f175b12469102..4d1fdbae42222d02e7ed4b6328702083eef8f1a7 100644 (file)
@@ -943,6 +943,21 @@ static int vt02BestIndex(sqlite3_vtab *pVTab, sqlite3_index_info *pInfo){
           pInfo->orderByConsumed = 1;
         }
       }
+    }else{
+      int nDesc = 0;
+      int nAsc = 0;
+      for(i=0; i<pInfo->nOrderBy; i++){
+        if( pInfo->aOrderBy[i].iColumn!=i+1 ) break;
+        if( pInfo->aOrderBy[i].desc ){
+          nDesc++;
+        }else{
+          nAsc++;
+        }
+      }
+      if( i==pInfo->nOrderBy && (nDesc==0 || nAsc==0) ){
+        pInfo->orderByConsumed = 1;
+        if( nDesc ) pInfo->idxNum += 1000;
+      }
     }
   }