| # 2024 June 24 |
| # |
| # 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. |
| # |
| #*********************************************************************** |
| # |
| # Tests focusing on the auxiliary function APIs. |
| # |
| |
| source [file join [file dirname [info script]] fts5_common.tcl] |
| set testprefix fts5aux |
| |
| # If SQLITE_ENABLE_FTS5 is not defined, omit this file. |
| ifcapable !fts5 { |
| finish_test |
| return |
| } |
| |
| do_execsql_test 1.0 { |
| CREATE VIRTUAL TABLE x1 USING fts5(a, b); |
| INSERT INTO x1 VALUES('a b', 'c d'); |
| INSERT INTO x1 VALUES('d e', 'a b'); |
| INSERT INTO x1 VALUES('a b', 'e f'); |
| INSERT INTO x1 VALUES('d e', 'c d'); |
| } |
| |
| fts5_aux_test_functions db |
| do_execsql_test 1.1 { |
| SELECT fts5_test_all(x1) FROM x1 WHERE rowid=2 |
| } [list [list {*}{ |
| columnsize {2 2} |
| columntext {{d e} {a b}} |
| columntotalsize {8 8} |
| poslist {} |
| tokenize {{d e} {a b}} |
| rowcount 4 |
| }]] |
| |
| do_execsql_test 1.2 { |
| SELECT fts5_test_columntext(x1) FROM x1 |
| } { |
| {{a b} {c d}} |
| {{d e} {a b}} |
| {{a b} {e f}} |
| {{d e} {c d}} |
| } |
| |
| do_execsql_test 1.3 { |
| SELECT fts5_test_rowid(x1) FROM x1 |
| } { |
| 1 2 3 4 |
| } |
| do_execsql_test 1.4 { |
| SELECT fts5_test_phrasecount(x1) FROM x1 |
| } { |
| 0 0 0 0 |
| } |
| do_catchsql_test 1.5 { |
| SELECT fts5_queryphrase(x1, 0) FROM x1 |
| } {1 SQLITE_RANGE} |
| do_execsql_test 1.6 { |
| SELECT fts5_test_rowcount(x1) FROM x1 |
| } {4 4 4 4} |
| |
| |
| finish_test |