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
# 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
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%
);
"
# 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) {
} {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) {
} $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
-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
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
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
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.
-4d11d844de3edd82f022c36381ca7f14a546a608293c329b91e7f041cec82ff5
+74832fffb61d5e09ff256622cc9aa1fd2c40d30324c410bd6a8c688f0506a536