1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-23 21:49:02 +03:00
Files
sqlite/ext/vec1/test/vec1create.test
dan e32fbe0c23 Import vec1 sources into directory ext/vec1/ of this project.
FossilOrigin-Name: 3a0876d973868be7b6f4156a434cd09098c7ab1abdc7f0ef4f3d12a03de68b24
2026-09-30 14:49:16 +00:00

115 lines
3.0 KiB
Plaintext

# 2026-08-19
#
# 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]] vec1_common.tcl]
set testprefix vec1config
vec1_load db
do_execsql_test 1.0 {
CREATE VIRTUAL TABLE v1 USING vec1("vector column", "meta column");
}
do_execsql_test 1.1 {
SELECT v1."vector column", v1."meta column" FROM v1
}
foreach {tn cols err} {
1 { vector BLOB } {vec1: trailing characters after column name}
2 { v, col BLOB } {vec1: trailing characters after column name}
3 { v, [col BLOB]x } {vec1: trailing characters after column name}
4 { "vector col" BLOB } {vec1: trailing characters after column name}
5 { v, +i } {vec1: near "+": syntax error}
} {
execsql { DROP TABLE IF EXISTS v1 }
do_catchsql_test 1.2.$tn "
CREATE VIRTUAL TABLE v1 USING vec1( $cols )
" [list 1 $err]
}
foreach {tn cols lCol} {
1 { vector } {vector}
2 { "vector col" } {{vector col}}
3 { v, 'meta 1' } {v {meta 1}}
4 { v, 'Dave''s col' } {v {Dave's col}}
5 { v, [column [[[] } {v {column [[[}}
} {
execsql { DROP TABLE IF EXISTS v1 }
do_test 1.3.$tn {
execsql "CREATE VIRTUAL TABLE v1 USING vec1( $cols );"
set ret [list]
db eval { PRAGMA table_info = v1 } a {
lappend ret $a(name)
}
set ret
} $lCol
}
#-------------------------------------------------------------------------
reset_db
vec1_load db
do_execsql_test 2.0 {
CREATE VIRTUAL TABLE "Count Duckula's 11" USING vec1(
"vector column", "meta column"
);
}
do_execsql_test 2.1 {
SELECT * FROM "Count Duckula's 11";
}
do_execsql_test 2.2 {
ALTER TABLE "Count Duckula's 11" RENAME TO "Bill's table";
}
do_execsql_test 2.3 {
INSERT INTO "Bill's table" VALUES(random_vector(10), 1100);
INSERT INTO "Bill's table" VALUES(random_vector(10), 'text');
INSERT INTO "Bill's table"(cmd, arg) VALUES('rebuild', '{index:"flat"}');
PRAGMA integrity_check;
} {ok}
do_execsql_test 2.4 {
ALTER TABLE "Bill's table" RENAME TO "a b c ''' d e f";
PRAGMA integrity_check;
} {ok}
#-------------------------------------------------------------------------
# Try to create tables with reserved column names "rowid" or "distance".
# Report https://sqlite.org/vec1/forumpost/05e888d619
#
reset_db
vec1_load db
breakpoint
foreach {tn cols err} {
1 "rowid" {1 {vec1: reserved column name: rowid}}
2 "ROWID" {1 {vec1: reserved column name: ROWID}}
3 " [rowid] " {1 {vec1: reserved column name: [rowid]}}
4 " \"rowid\" " {1 {vec1: reserved column name: "rowid"}}
5 " 'roWid' " {1 {vec1: reserved column name: 'roWid'}}
6 " [ rowid]" {0 {}}
5 " 'ro''Wid' " {0 {}}
} {
execsql { DROP TABLE IF EXISTS g1 }
do_catchsql_test 3.$tn "
CREATE VIRTUAL TABLE g1 USING vec1 ( $cols )
" $err
}
finish_test