mirror of
https://github.com/tursodatabase/libsql.git
synced 2025-06-13 16:32:54 +00:00
.cargo
.github
bindings
bottomless
bottomless-cli
docker-compose
docs
libsql
libsql-ffi
libsql-hrana
libsql-replication
libsql-server
libsql-shell
libsql-sqlite3
art
autoconf
contrib
crates
doc
ext
async
crr
expert
fts3
fts5
test
fts5_common.tcl
fts5aa.test
fts5ab.test
fts5ac.test
fts5ad.test
fts5ae.test
fts5af.test
fts5ag.test
fts5ah.test
fts5ai.test
fts5aj.test
fts5ak.test
fts5al.test
fts5alter.test
fts5auto.test
fts5aux.test
fts5auxdata.test
fts5bigid.test
fts5bigpl.test
fts5bigtok.test
fts5cat.test
fts5circref.test
fts5colset.test
fts5columnsize.test
fts5config.test
fts5conflict.test
fts5connect.test
fts5content.test
fts5contentless.test
fts5contentless2.test
fts5contentless3.test
fts5contentless4.test
fts5contentless5.test
fts5corrupt.test
fts5corrupt2.test
fts5corrupt3.test
fts5corrupt4.test
fts5corrupt5.test
fts5corrupt6.test
fts5corrupt7.test
fts5delete.test
fts5detail.test
fts5determin.test
fts5dlidx.test
fts5doclist.test
fts5ea.test
fts5eb.test
fts5fault1.test
fts5fault2.test
fts5fault3.test
fts5fault4.test
fts5fault5.test
fts5fault6.test
fts5fault7.test
fts5fault8.test
fts5fault9.test
fts5faultA.test
fts5faultB.test
fts5faultD.test
fts5faultE.test
fts5faultF.test
fts5faultG.test
fts5first.test
fts5full.test
fts5fuzz1.test
fts5hash.test
fts5integrity.test
fts5interrupt.test
fts5lastrowid.test
fts5leftjoin.test
fts5limits.test
fts5matchinfo.test
fts5merge.test
fts5merge2.test
fts5misc.test
fts5multi.test
fts5multiclient.test
fts5near.test
fts5onepass.test
fts5optimize.test
fts5optimize2.test
fts5optimize3.test
fts5phrase.test
fts5plan.test
fts5porter.test
fts5porter2.test
fts5prefix.test
fts5prefix2.test
fts5query.test
fts5rank.test
fts5rebuild.test
fts5restart.test
fts5rowid.test
fts5savepoint.test
fts5secure.test
fts5secure2.test
fts5secure3.test
fts5secure4.test
fts5secure5.test
fts5secure6.test
fts5secure7.test
fts5securefault.test
fts5simple.test
fts5simple2.test
fts5simple3.test
fts5synonym.test
fts5synonym2.test
fts5tok1.test
fts5tok2.test
fts5tokenizer.test
fts5trigram.test
fts5ubsan.test
fts5umlaut.test
fts5unicode.test
fts5unicode2.test
fts5unicode3.test
fts5unicode4.test
fts5unindexed.test
fts5update.test
fts5version.test
fts5vocab.test
fts5vocab2.test
tool
extract_api_docs.tcl
fts5.h
fts5Int.h
fts5_aux.c
fts5_buffer.c
fts5_config.c
fts5_expr.c
fts5_hash.c
fts5_index.c
fts5_main.c
fts5_storage.c
fts5_tcl.c
fts5_test_mi.c
fts5_test_tok.c
fts5_tokenize.c
fts5_unicode2.c
fts5_varint.c
fts5_vocab.c
fts5parse.y
mkportersteps.tcl
icu
jni
libsql-wasi
lsm1
misc
rbu
recover
repair
rtree
session
udf
userauth
vwal
wasi
wasm
README.md
mptest
src
test
tool
vsixtest
.gitignore
Dockerfile-wasm-udf
LIBSQL_VERSION
LICENSE.md
Makefile.in
Makefile.linux-gcc
Makefile.msc
README-SQLite.md
VERSION
aclocal.m4
config.guess
config.sub
configure
configure.ac
install-sh
libsql.pc.in
ltmain.sh
magic.txt
main.mk
manifest
manifest.uuid
spec.template
sqlite.pc.in
sqlite3.1
sqlite3.pc.in
sqlite_cfg.h.in
libsql-sys
tools
vendored
xtask
.dockerignore
.env
.gitignore
.gitmodules
CODE_OF_CONDUCT.md
Cargo.lock
Cargo.toml
Dockerfile
Dockerfile.dev
LICENSE.md
README-libsql.md
README.md
docker-entrypoint.sh
fly.toml
rust-toolchain.toml
96 lines
2.1 KiB
Plaintext
96 lines
2.1 KiB
Plaintext
# 2017 November 25
|
|
#
|
|
# 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]
|
|
set testprefix fts5first
|
|
|
|
ifcapable !fts5 {
|
|
finish_test
|
|
return
|
|
}
|
|
|
|
|
|
do_execsql_test 1.0 {
|
|
CREATE VIRTUAL TABLE x1 USING fts5(a, b);
|
|
}
|
|
|
|
foreach {tn expr ok} {
|
|
1 {^abc} 1
|
|
2 {^abc + def} 1
|
|
3 {^ "abc def"} 1
|
|
4 {^"abc def"} 1
|
|
5 {abc ^def} 1
|
|
6 {abc + ^def} 0
|
|
7 {abc ^+ def} 0
|
|
8 {"^abc"} 1
|
|
9 {NEAR(^abc def)} 0
|
|
} {
|
|
set res(0) {/1 {fts5: syntax error near .*}/}
|
|
set res(1) {0 {}}
|
|
|
|
do_catchsql_test 1.$tn { SELECT * FROM x1($expr) } $res($ok)
|
|
}
|
|
|
|
#-------------------------------------------------------------------------
|
|
#
|
|
do_execsql_test 2.0 {
|
|
INSERT INTO x1 VALUES('a b c', 'b c a');
|
|
}
|
|
|
|
foreach {tn expr match} {
|
|
1 {^a} 1
|
|
2 {^b} 1
|
|
3 {^c} 0
|
|
4 {^a + b} 1
|
|
5 {^b + c} 1
|
|
6 {^c + a} 0
|
|
7 {^"c a"} 0
|
|
8 {a:^a} 1
|
|
9 {a:^b} 0
|
|
10 {a:^"a b"} 1
|
|
} {
|
|
do_execsql_test 2.$tn { SELECT EXISTS (SELECT rowid FROM x1($expr)) } $match
|
|
}
|
|
|
|
#-------------------------------------------------------------------------
|
|
#
|
|
do_execsql_test 3.0 {
|
|
DELETE FROM x1;
|
|
INSERT INTO x1 VALUES('b a', 'c a');
|
|
INSERT INTO x1 VALUES('a a', 'c c');
|
|
INSERT INTO x1 VALUES('a b', 'a a');
|
|
}
|
|
fts5_aux_test_functions db
|
|
|
|
foreach {tn expr expect} {
|
|
1 {^a} {{2 1}}
|
|
2 {^c AND ^b} {{0 2} {1 0}}
|
|
} {
|
|
do_execsql_test 3.$tn {
|
|
SELECT fts5_test_queryphrase(x1) FROM x1($expr) LIMIT 1
|
|
} [list $expect]
|
|
}
|
|
|
|
#-------------------------------------------------------------------------
|
|
#
|
|
do_execsql_test 3.1 {
|
|
CREATE VIRTUAL TABLE x2 USING fts5(a, b, c, detail=column);
|
|
}
|
|
|
|
do_catchsql_test 3.2 {
|
|
SELECT * FROM x2('a + b');
|
|
} {1 {fts5: phrase queries are not supported (detail!=full)}}
|
|
|
|
do_catchsql_test 3.3 {
|
|
SELECT * FROM x2('^a');
|
|
} {1 {fts5: phrase queries are not supported (detail!=full)}}
|
|
finish_test
|