]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add tests for DELETE on contentless, contentless-delete and contentless-unindexed...
authordan <Dan Kennedy>
Sat, 28 Sep 2024 15:09:43 +0000 (15:09 +0000)
committerdan <Dan Kennedy>
Sat, 28 Sep 2024 15:09:43 +0000 (15:09 +0000)
FossilOrigin-Name: 74832fffb61d5e09ff256622cc9aa1fd2c40d30324c410bd6a8c688f0506a536

ext/fts5/test/fts5delete.test
ext/fts5/test/fts5update2.test
manifest
manifest.uuid

index 1214fec4f4f0afda4693d09d99f51cc4953931ff..c9c55e8a4f6253d14f7de0acfd96a6fcd383814c 100644 (file)
@@ -113,5 +113,57 @@ do_execsql_test 3.4 {
   INSERT INTO tx(tx) VALUES('integrity-check');
 }
 
+#-------------------------------------------------------------------------
+reset_db
+do_execsql_test 4.0 {
+  CREATE VIRTUAL TABLE ft1 USING fts5(a, b UNINDEXED, 
+      content='', contentless_unindexed=1
+  );
+  CREATE VIRTUAL TABLE ft2 USING fts5(a, b UNINDEXED, 
+      content='', contentless_unindexed=1, contentless_delete=1
+  );
+
+  INSERT INTO ft1(rowid, a, b) VALUES(1, 'one', 'i');
+  INSERT INTO ft1(rowid, a, b) VALUES(2, 'two', 'ii');
+  INSERT INTO ft1(rowid, a, b) VALUES(3, 'three', 'iii');
+  INSERT INTO ft2(rowid, a, b) VALUES(1, 'one', 'i');
+  INSERT INTO ft2(rowid, a, b) VALUES(2, 'two', 'ii');
+  INSERT INTO ft2(rowid, a, b) VALUES(3, 'three', 'iii');
+}
+
+do_catchsql_test 4.1 {
+  DELETE FROM ft1 WHERE rowid=2
+} {1 {cannot DELETE from contentless fts5 table: ft1}}
+do_catchsql_test 4.2 {
+  DELETE FROM ft2 WHERE rowid=2
+} {0 {}}
+
+do_catchsql_test 4.3 {
+  INSERT INTO ft1(ft1, rowid, a) VALUES('delete', 2, 'two');
+} {0 {}}
+do_catchsql_test 4.2 {
+  INSERT INTO ft2(ft2, rowid, a) VALUES('delete', 2, 'two');
+} {1 {'delete' may not be used with a contentless_delete=1 table}}
+
+do_execsql_test 4.3 {
+  SELECT rowid, * FROM ft1;
+} {
+  1 {} i
+  3 {} iii
+}
+do_execsql_test 4.4 {
+  SELECT rowid, * FROM ft2;
+} {
+  1 {} i
+  3 {} iii
+}
+
+do_execsql_test 4.5 {
+  SELECT * FROM ft1_content
+} {1 i 3 iii}
+do_execsql_test 4.6 {
+  SELECT * FROM ft1_content
+} {1 i 3 iii}
+
 finish_test
 
index 9e5e6c81db1d17e11a9226fcc93a6a91d75b88b7..d04af4800d6a064b091d87b7f184be4d2237e8c7 100644 (file)
@@ -26,6 +26,7 @@ ifcapable !fts5 {
 # Test that the various types of UPDATE statement are handled correctly
 # by different table types.
 #
+foreach_detail_mode $testprefix {
 foreach {tn cu} {
   1 0
   2 1
@@ -34,11 +35,13 @@ foreach {tn cu} {
   do_execsql_test 1.$tn.1 "
     CREATE VIRTUAL TABLE ft1 USING fts5(a, b UNINDEXED, c UNINDEXED, d,
         content='',
-        contentless_unindexed=$cu
+        contentless_unindexed=$cu,
+        detail=%DETAIL%
     );
     CREATE VIRTUAL TABLE ft2 USING fts5(a, b UNINDEXED, c UNINDEXED, d,
         content='',
-        contentless_unindexed=$cu, contentless_delete=1
+        contentless_unindexed=$cu, contentless_delete=1,
+        detail=%DETAIL%
     );
   "
 
@@ -121,7 +124,7 @@ foreach {tn cu} {
   # It should be possible to update the rowid if contentless_delete=1 is
   # set and all indexed columns are updated.
   do_execsql_test 1.$tn.15 {
-    UPDATE ft2 SET a='a_one', d='d_one', rowid=11 WHERE rowid=1
+    UPDATE ft2 SET a='aXone', d='dXone', rowid=11 WHERE rowid=1
   } 
 
   set res(0) {
@@ -148,7 +151,7 @@ foreach {tn cu} {
   } {1 {cannot UPDATE contentless fts5 table: ft1}}
 
   do_execsql_test 1.$tn.19 {
-    UPDATE ft2 SET a='a_two', d='d_two', c='newval', rowid=12 WHERE rowid=2
+    UPDATE ft2 SET a='aXtwo', d='dXtwo', c='newval', rowid=12 WHERE rowid=2
   }  {}
 
   set res(0) {
@@ -166,10 +169,9 @@ foreach {tn cu} {
   } $res($cu)
 
   do_execsql_test 1.$tn.21 {
-    SELECT rowid, * FROM ft2('a_two AND d_two')
+    SELECT rowid, * FROM ft2('aXtwo AND dXtwo')
   } [lrange $res($cu) 10 end]
 
-
-}
+}} ;# end of [foreach_detail_mode] loop
 
 finish_test
index 11bbbe30ca2faea5792d34b2c63506a1d8f65a32..015a187a8eff44f2ecf210fde9baad6a309aa4b0 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Extra\stest\scases\sfor\sUPDATEs\sof\scontentless\stables.
-D 2024-09-27T19:21:09.689
+C Add\stests\sfor\sDELETE\son\scontentless,\scontentless-delete\sand\scontentless-unindexed\sfts5\stables.
+D 2024-09-28T15:09:43.754
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -154,7 +154,7 @@ F ext/fts5/test/fts5corrupt5.test 11b47126f5772cc37b67e3e8b2ed05895c4d07c05338bc
 F ext/fts5/test/fts5corrupt6.test 2d72db743db7b5d9c9a6d0cfef24d799ed1aa5e8192b66c40e871a37ed9eed06
 F ext/fts5/test/fts5corrupt7.test 4e830875c33b9ea3c4cf1ba71e692b63893cbb4faae8c69b1071889dc26e211c
 F ext/fts5/test/fts5corrupt8.test b81d802e41631e98100f49a1aadeeffef860e30a62d6ed7d743c2797c477239e
-F ext/fts5/test/fts5delete.test 619295b20dbc1d840b403ee07c878f52378849c3c02e44f2ee143b3e978a0aa7
+F ext/fts5/test/fts5delete.test e5ad73ce7cda1201b15ead1170f0bc6a2402107b4c2b4e8c8d38c3c7a5140739
 F ext/fts5/test/fts5detail.test 54015e9c43ec4ba542cfb93268abdf280e0300f350efd08ee411284b03595cc4
 F ext/fts5/test/fts5determin.test 1b77879b2ae818b5b71c859e534ee334dac088b7cf3ff3bf76a2c82b1c788d11
 F ext/fts5/test/fts5dlidx.test a7c42b0a74dc7c8aa1a46d586e0aadda4b6cc42c24450f8d3774b21166e93159
@@ -248,7 +248,7 @@ F ext/fts5/test/fts5unicode4.test 728c8f0caafb05567f524ad313d9f8b780fa45987b8a8d
 F ext/fts5/test/fts5unindexed.test 168838d2c385e131120bbf5b516d2432a5fabc4caa2259c932e1d49ae209a4ae
 F ext/fts5/test/fts5unindexed2.test 516236eceaac05ace322290a0d3705b4c4ffe4760d8eb9d014d9d27d56dfcc02
 F ext/fts5/test/fts5update.test b8affd796e45c94a4d19ad5c26606ea06065a0f162a9562d9f005b5a80ccf0bc
-F ext/fts5/test/fts5update2.test 1757efae987e6a5a8ac75e3d487fe7be0b8de6006c12f3789fa5d86ee1012706
+F ext/fts5/test/fts5update2.test c5baa76799ac605ebb8e5e21035db2014b396cef25c903eb96ba39b1d6f9f046
 F ext/fts5/test/fts5version.test c22d163c17e60a99f022cbc52de5a48bb7f84deaa00fe15e9bc4c3aa1996204e
 F ext/fts5/test/fts5vocab.test 2a2bdb60d0998fa3124d541b6d30b019504918dc43a6584645b63a24be72f992
 F ext/fts5/test/fts5vocab2.test bbba149c254375d00055930c1a501c9a51e80b0d20bf7b98f3e9fa3b03786373
@@ -2217,8 +2217,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 d69abca82145465c85241a12322986f22bf12ffe42f86c2c8e8e2f2a77d53bf8
-R 817da49217632f1ab83203ed5615b513
+P 4d11d844de3edd82f022c36381ca7f14a546a608293c329b91e7f041cec82ff5
+R 252b3e37ef138d75d16ca0a09145d26b
 U dan
-Z b50e3f13244bcc732f70d03504469c39
+Z 1c5135e581d8308e18c2303d6757adc4
 # Remove this line to create a well-formed Fossil manifest.
index fb8124c66b814e9d04db3172be9b3649ada4d840..ca318965b4b8685f2ae98a68197ac4c65063496a 100644 (file)
@@ -1 +1 @@
-4d11d844de3edd82f022c36381ca7f14a546a608293c329b91e7f041cec82ff5
+74832fffb61d5e09ff256622cc9aa1fd2c40d30324c410bd6a8c688f0506a536