]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a problem in fts5 caused by a COMMIT involving fts5 data that immediately follows...
authordan <Dan Kennedy>
Tue, 2 Jan 2024 21:08:25 +0000 (21:08 +0000)
committerdan <Dan Kennedy>
Tue, 2 Jan 2024 21:08:25 +0000 (21:08 +0000)
FossilOrigin-Name: 55c61f6a8d6a1bc79497b05669beac5c5397b06382bf24b6bec54845962d219b

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

index 05946d8b64781927a09a9a086b116d00e9d0c4e2..45dee44b1ea51a913c08a0e834b02d56dfea0074 100644 (file)
@@ -2731,8 +2731,8 @@ static int fts5RollbackToMethod(sqlite3_vtab *pVtab, int iSavepoint){
   int rc = SQLITE_OK;
   fts5CheckTransactionState(pTab, FTS5_ROLLBACKTO, iSavepoint);
   fts5TripCursors(pTab);
-  pTab->p.pConfig->pgsz = 0;
   if( (iSavepoint+1)<=pTab->iSavepoint ){
+    pTab->p.pConfig->pgsz = 0;
     rc = sqlite3Fts5StorageRollback(pTab->pStorage);
   }
   return rc;
index 221f3996a72171a2aa5ce38c080f2cfe91066392..4e4fe4ba2de3082de85b1db947a3c7b497da9671 100644 (file)
@@ -515,5 +515,25 @@ do_execsql_test 18.2 {
   COMMIT;
 }
 
+#-------------------------------------------------------------------------
+reset_db
+do_execsql_test 19.0 {
+  CREATE VIRTUAL TABLE t1 USING fts5(text);
+  CREATE TABLE t2(text);
+  BEGIN;
+    INSERT INTO t1 VALUES('one');
+    INSERT INTO t1 VALUES('two');
+    INSERT INTO t1 VALUES('three');
+    INSERT INTO t1 VALUES('one');
+    INSERT INTO t1 VALUES('two');
+    INSERT INTO t1 VALUES('three');
+    SAVEPOINT one;
+      INSERT INTO t2 VALUES('one');
+      INSERT INTO t2 VALUES('two');
+      INSERT INTO t2 VALUES('three');
+    ROLLBACK TO one;
+  COMMIT;
+}
+
 finish_test
 
index c5dc2aed32607bbbe522908a33a6ea322abd46f9..c374d37ee2cba2719b0d3c160bae5d0af1709651 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Increase\sthe\sdefault\s"max_page_count"\sto\sits\stheoretical\smaximum\sof\n4294967294.
-D 2024-01-02T20:34:27.723
+C Fix\sa\sproblem\sin\sfts5\scaused\sby\sa\sCOMMIT\sinvolving\sfts5\sdata\sthat\simmediately\sfollows\sa\sROLLBACK\sTO\sthat\sdoes\snot.
+D 2024-01-02T21:08:25.050
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -98,7 +98,7 @@ F ext/fts5/fts5_config.c 8072a207034b51ae9b7694121d1b5715c794e94b275e088f70ae532
 F ext/fts5/fts5_expr.c e91156ebdcc08d837f4f324168f69f3c0d7fdef0e521fd561efb48ef3297b696
 F ext/fts5/fts5_hash.c adda4272be401566a6e0ba1acbe70ee5cb97fce944bc2e04dc707152a0ec91b1
 F ext/fts5/fts5_index.c bb1965c3965f6fe5f64160bf1c0694a9684a790a783f293a76da1d38d319b258
-F ext/fts5/fts5_main.c 93e5bc8676dbaaec365576d26cdafc5c21f0052f8f68b86ee4de22237c2e2143
+F ext/fts5/fts5_main.c 1c6c7df07fd0d8b37548887dcdc00a8cc31fd1dc13bf9091f3350a9f23e6353c
 F ext/fts5/fts5_storage.c f9e31b0d155e9b2c92d5d3a09ad7a56b937fbf1c7f962e10f4ca6281349f3934
 F ext/fts5/fts5_tcl.c cf0fd0dbe64ec272491b749e0d594f563cda03336aeb60900129e6d18b0aefb8
 F ext/fts5/fts5_test_mi.c 08c11ec968148d4cb4119d96d819f8c1f329812c568bac3684f5464be177d3ee
@@ -184,7 +184,7 @@ F ext/fts5/test/fts5limits.test 8ab67cf5d311c124b6ceb0062d0297767176df4572d955fc
 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 dd97c86c9cbc3e587067e640f6ce88842cfbf5d23bb0e0fbb7f6707623b2d505
+F ext/fts5/test/fts5misc.test 89dc46e37951b7f6653809f4abf6b1ca2f1fa62259efaf719339288f76fb6be9
 F ext/fts5/test/fts5multi.test a15bc91cdb717492e6e1b66fec1c356cb57386b980c7ba5af1915f97fe878581
 F ext/fts5/test/fts5multiclient.test 5ff811c028d6108045ffef737f1e9f05028af2458e456c0937c1d1b8dea56d45
 F ext/fts5/test/fts5near.test 211477940142d733ac04fad97cb24095513ab2507073a99c2765c3ddd2ef58bd
@@ -2156,8 +2156,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 d489232aa492618d4c8e5817addb2323d0ca067742d7140216914239a66fb221
-R a0497c811eff87495d0c9ffce0ab9884
-U drh
-Z d3582aa92c333af17186884e8cd6645f
+P ffb35f1784a4305b979a850485f57f56938104a3a03f4a7aececde92864c4879
+R e7196a3c488f0fb11fc6e934ceab1b33
+U dan
+Z 8628e9692564183c206ecaf3e3550685
 # Remove this line to create a well-formed Fossil manifest.
index 0a0bd948256cb0927f8186285f99b73b7a59fd76..62069135fbec2d8c32dc6f0c9e361ffcacb4df2c 100644 (file)
@@ -1 +1 @@
-ffb35f1784a4305b979a850485f57f56938104a3a03f4a7aececde92864c4879
\ No newline at end of file
+55c61f6a8d6a1bc79497b05669beac5c5397b06382bf24b6bec54845962d219b
\ No newline at end of file