]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a faulty assert() in fts5.
authordan <Dan Kennedy>
Mon, 19 Dec 2022 20:14:22 +0000 (20:14 +0000)
committerdan <Dan Kennedy>
Mon, 19 Dec 2022 20:14:22 +0000 (20:14 +0000)
FossilOrigin-Name: 569018170b928cadfa0745db631981084e595d90a8c3d1e236c42adae161018f

ext/fts5/fts5_main.c
ext/fts5/test/fts5misc.test
manifest
manifest.uuid

index 2f7b6d8f62de8db10d4daf211535cfe2f2ef6744..d4b9fa85c4edd4365b1f20cde50bbd36077fc77c 100644 (file)
@@ -275,21 +275,21 @@ static void fts5CheckTransactionState(Fts5FullTable *p, int op, int iSavepoint){
       break;
 
     case FTS5_SAVEPOINT:
-      assert( p->ts.eState==1 );
+      assert( p->ts.eState>=1 );
       assert( iSavepoint>=0 );
       assert( iSavepoint>=p->ts.iSavepoint );
       p->ts.iSavepoint = iSavepoint;
       break;
       
     case FTS5_RELEASE:
-      assert( p->ts.eState==1 );
+      assert( p->ts.eState>=1 );
       assert( iSavepoint>=0 );
       assert( iSavepoint<=p->ts.iSavepoint );
       p->ts.iSavepoint = iSavepoint-1;
       break;
 
     case FTS5_ROLLBACKTO:
-      assert( p->ts.eState==1 );
+      assert( p->ts.eState>=1 );
       assert( iSavepoint>=-1 );
       /* The following assert() can fail if another vtab strikes an error
       ** within an xSavepoint() call then SQLite calls xRollbackTo() - without
index 420cba9af9708afe33c9808c4702f74e3f094d60..4b9ca2dbb26ec3033b60cad47e4dedf9b196ab7d 100644 (file)
@@ -377,5 +377,30 @@ do_catchsql_test 14.4 {
   ROLLBACK;
 } {0 {}}
 
+#-------------------------------------------------------------------------
+reset_db
+sqlite3 db2 test.db
+
+do_execsql_test 15.0 {
+  CREATE TABLE t1(a, b);
+  BEGIN;
+    SELECT * FROM t1;
+}
+
+do_execsql_test -db db2 15.1 {
+  BEGIN; 
+    CREATE VIRTUAL TABLE x1 USING fts5(y);
+}
+do_test 15.2 {
+  list [catch { db2 eval COMMIT } msg] $msg
+} {1 {database is locked}}
+do_execsql_test -db db2 15.3 {
+  SAVEPOINT one;
+} {}
+do_execsql_test 15.4 END
+do_test 15.4 {
+  list [catch { db2 eval COMMIT } msg] $msg
+} {0 {}}
+
 finish_test
 
index abecc12f31c2f2bf47c2298f438e90255cb5ffbf..460902f7f8c472982038dda55934f133e013b826 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\san\sunused\svariable.
-D 2022-12-19T19:04:32.421
+C Fix\sa\sfaulty\sassert()\sin\sfts5.
+D 2022-12-19T20:14:22.085
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -119,7 +119,7 @@ F ext/fts5/fts5_config.c 501e7d3566bc92766b0e11c0109a7c5a6146bc41144195459af5422
 F ext/fts5/fts5_expr.c 40174a64829d30cc86e8266306ad24980f6911edd5ca0b8c1ce7821ea1341b88
 F ext/fts5/fts5_hash.c d4fb70940359f2120ccd1de7ffe64cc3efe65de9e8995b822cd536ff64c96982
 F ext/fts5/fts5_index.c a8ee270724ae1f958d0ce9897bcd60a5b760ecbeaa058fc8632805a283f1c20a
-F ext/fts5/fts5_main.c 726c5ef6d151fe3c223c1a9cd51c2c611d9d9df0ac0f840e298a7c26e58bb0f0
+F ext/fts5/fts5_main.c 3fd46be6a7aaac1d4210d4df0c7f9b1e78d1f0af566bfa2ab58d945ffa328ff7
 F ext/fts5/fts5_storage.c 76c6085239eb44424004c022e9da17a5ecd5aaec859fba90ad47d3b08f4c8082
 F ext/fts5/fts5_tcl.c b1445cbe69908c411df8084a10b2485500ac70a9c747cdc8cda175a3da59d8ae
 F ext/fts5/fts5_test_mi.c 08c11ec968148d4cb4119d96d819f8c1f329812c568bac3684f5464be177d3ee
@@ -194,7 +194,7 @@ F ext/fts5/test/fts5leftjoin.test c0b4cafb9661379e576dc4405c0891d8fcc27826807405
 F ext/fts5/test/fts5matchinfo.test 10c9a6f7fe61fb132299c4183c012770b10c4d5c2f2edb6df0b6607f683d737a
 F ext/fts5/test/fts5merge.test e92a8db28b45931e7a9c7b1bbd36101692759d00274df74d83fd29d25d53b3a6
 F ext/fts5/test/fts5merge2.test 3ebad1a59d6ad3fb66eff6523a09e95dc6367cbefb3cd73196801dea0425c8e2
-F ext/fts5/test/fts5misc.test e19a5406a149ede4b6aad826567d7a31bd02b5ed6d3df2dc8eadedfbb12d1814
+F ext/fts5/test/fts5misc.test f0c5d5f6bc64f7cec522042f0ceb79c9195a4cde9fceb2af3718b3f10c8b7168
 F ext/fts5/test/fts5multi.test a15bc91cdb717492e6e1b66fec1c356cb57386b980c7ba5af1915f97fe878581
 F ext/fts5/test/fts5multiclient.test 5ff811c028d6108045ffef737f1e9f05028af2458e456c0937c1d1b8dea56d45
 F ext/fts5/test/fts5near.test 211477940142d733ac04fad97cb24095513ab2507073a99c2765c3ddd2ef58bd
@@ -2067,8 +2067,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 49efcf6d9f894c28a3ffb350a7c5f0ffd12c7cbf61f5c27f76eb7f777b8a24c5
-R 9f6d87a85f97400124a4c086d9cd66f5
-U drh
-Z d3a4663509582baa7aed3650a540d0d5
+P 5c4d94147d290d4a68ac0d5ae8f9e6bbfe7522ad58b2298e387f8c699048e111
+R cdb15e0661195b8c62c31eded160eb23
+U dan
+Z 563da3999947a18106cd894745cad872
 # Remove this line to create a well-formed Fossil manifest.
index d664d48ebe1db1c09d54e5e5f82773dce6ffc0d6..8b9340f90cc786478fd16cde00215edf9547011b 100644 (file)
@@ -1 +1 @@
-5c4d94147d290d4a68ac0d5ae8f9e6bbfe7522ad58b2298e387f8c699048e111
\ No newline at end of file
+569018170b928cadfa0745db631981084e595d90a8c3d1e236c42adae161018f
\ No newline at end of file