| # 2023 Feb 17 |
| # |
| # The author disclaims copyright to this source code. In place of |
| # a legal notice, here is a blessing: |
| # |
| # May you do good and not evil. |
| # May you find forgiveness for yourself and forgive others. |
| # May you share freely, never taking more than you give. |
| # |
| #************************************************************************* |
| # |
| |
| source [file join [file dirname [info script]] fts5_common.tcl] |
| ifcapable !fts5 { finish_test ; return } |
| set ::testprefix fts5secure2 |
| |
| do_execsql_test 1.0 { |
| CREATE VIRTUAL TABLE ft USING fts5(col); |
| INSERT INTO ft VALUES('data for the table'); |
| INSERT INTO ft VALUES('more of the same'); |
| INSERT INTO ft VALUES('and extra data'); |
| } |
| |
| do_execsql_test 1.1 { |
| SELECT * FROM ft_config |
| } {version 4} |
| |
| do_execsql_test 1.2 { |
| INSERT INTO ft(ft, rank) VALUES('secure-delete', 1); |
| SELECT * FROM ft_config; |
| } {secure-delete 1 version 4} |
| |
| do_execsql_test 1.3 { |
| INSERT INTO ft(ft, rank) VALUES('secure-delete', 1); |
| SELECT * FROM ft_config; |
| } {secure-delete 1 version 4} |
| |
| do_execsql_test 1.4 { |
| DELETE FROM ft WHERE rowid=2; |
| SELECT * FROM ft_config; |
| } {secure-delete 1 version 5} |
| |
| do_execsql_test 1.5 { |
| SELECT rowid, col FROM ft('data'); |
| } {1 {data for the table} 3 {and extra data}} |
| |
| db close |
| sqlite3 db test.db |
| |
| do_execsql_test 1.6 { |
| SELECT rowid, col FROM ft('data'); |
| } {1 {data for the table} 3 {and extra data}} |
| |
| #------------------------------------------------------------------------ |
| |
| reset_db |
| do_execsql_test 2.0 { |
| CREATE VIRTUAL TABLE ft USING fts5(col); |
| INSERT INTO ft VALUES('one zero one one zero'); |
| INSERT INTO ft(ft, rank) VALUES('secure-delete', 1); |
| } |
| |
| do_execsql_test 2.1 { |
| SELECT count(*) FROM ft_data WHERE block=X'00000004'; |
| } {0} |
| |
| do_execsql_test 2.2 { |
| UPDATE ft SET col = 'zero one zero zero one' WHERE rowid=1; |
| } |
| |
| do_execsql_test 2.3 { |
| SELECT count(*) FROM ft_data WHERE block=X'00000004'; |
| } {1} |
| |
| do_execsql_test 2.4 { |
| INSERT INTO ft VALUES('one zero zero one'); |
| DELETE FROM ft WHERE rowid=1; |
| } |
| |
| do_execsql_test 2.5 { |
| SELECT count(*) FROM ft_data WHERE block=X'00000004'; |
| } {2} |
| |
| |
| finish_test |
| |
| |