mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
144 lines
2.8 KiB
Plaintext
144 lines
2.8 KiB
Plaintext
# 2019 February 26
|
|
#
|
|
# 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.
|
|
#
|
|
#***********************************************************************
|
|
#
|
|
#
|
|
|
|
set testdir [file dirname $argv0]
|
|
source $testdir/tester.tcl
|
|
set testprefix reuse6
|
|
|
|
ifcapable !sharedschema {
|
|
finish_test
|
|
return
|
|
}
|
|
|
|
do_execsql_test 1.0 {
|
|
CREATE TABLE t1(x, y);
|
|
CREATE TABLE t2(a, b, c);
|
|
CREATE INDEX t1x ON t1(x);
|
|
CREATE INDEX t1y ON t1(y);
|
|
CREATE VIEW v1 AS SELECT * FROM t2;
|
|
|
|
INSERT INTO t1 VALUES(1, 2), (3, 4), (5, 6);
|
|
INSERT INTO t2 VALUES('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'h', 'i');
|
|
|
|
ATTACH 'test.db2' AS aux;
|
|
CREATE TABLE t3(i, ii);
|
|
INSERT INTO t3 VALUES(10, 20);
|
|
}
|
|
|
|
sqlite3 db1 test.db -shared-schema 1
|
|
sqlite3 db2 test.db -shared-schema 1
|
|
|
|
do_execsql_test -db db1 1.1 {
|
|
ATTACH 'test.db2' AS aux;
|
|
}
|
|
|
|
do_test 1.2 {
|
|
execsql {SELECT * FROM t3} db1
|
|
} {10 20}
|
|
|
|
do_execsql_test -db db2 1.3 {
|
|
ATTACH 'test.db2' AS aux;
|
|
}
|
|
|
|
do_test 1.3 {
|
|
execsql {SELECT * FROM t3} db1
|
|
} {10 20}
|
|
|
|
do_execsql_test -db db2 1.5 {
|
|
SELECT * FROM t3;
|
|
} {10 20}
|
|
|
|
do_test 1.6 {
|
|
execsql {SELECT * FROM t3} db1
|
|
} {10 20}
|
|
|
|
db1 close
|
|
db2 close
|
|
|
|
#-------------------------------------------------------------------------
|
|
reset_db
|
|
forcedelete test.db2
|
|
forcedelete test.db3
|
|
do_execsql_test 2.0 {
|
|
CREATE TABLE t1(x, y);
|
|
ATTACH 'test.db2' AS aux2;
|
|
CREATE TABLE aux2.t2(x, y);
|
|
ATTACH 'test.db3' AS aux3;
|
|
CREATE TABLE aux3.t3(x, y);
|
|
}
|
|
|
|
sqlite3 db1 test.db -shared-schema 1
|
|
do_execsql_test -db db1 2.1 {
|
|
ATTACH 'test.db2' AS aux2;
|
|
ATTACH 'test.db3' AS aux3;
|
|
}
|
|
|
|
do_test 2.2.1 {
|
|
catchsql { SELECT * FROM aux2.nosuchtable } db1
|
|
} {1 {no such table: aux2.nosuchtable}}
|
|
do_test 2.2.2 {
|
|
sqlite3_errcode db1
|
|
} {SQLITE_ERROR}
|
|
db1 close
|
|
|
|
#-------------------------------------------------------------------------
|
|
reset_db
|
|
forcedelete test.db2
|
|
ifcapable fts5 {
|
|
do_execsql_test 3.0 {
|
|
CREATE VIRTUAL TABLE ft USING fts5(a, b);
|
|
ATTACH 'test.db2' AS aux;
|
|
CREATE TABLE aux.t1(x, y, z);
|
|
}
|
|
|
|
sqlite3 db1 test.db -shared-schema 1
|
|
do_execsql_test -db db1 3.1 {
|
|
ATTACH 'test.db2' AS aux;
|
|
}
|
|
|
|
do_execsql_test -db db1 3.2 {
|
|
SELECT * FROM main.ft, aux.t1;
|
|
}
|
|
db1 close
|
|
}
|
|
|
|
#-------------------------------------------------------------------------
|
|
reset_db
|
|
forcedelete test.db2
|
|
ifcapable fts5 {
|
|
do_execsql_test 4.0 {
|
|
CREATE VIRTUAL TABLE ft USING fts5(a, b);
|
|
}
|
|
forcecopy test.db test.db2
|
|
|
|
sqlite3 db1 test.db -shared-schema 1
|
|
do_execsql_test -db db1 4.1 {
|
|
ATTACH 'test.db2' AS aux;
|
|
SELECT * FROM main.ft;
|
|
SELECT * FROM aux.ft;
|
|
}
|
|
|
|
do_execsql_test -db db1 4.2 {
|
|
SELECT * FROM main.ft, aux.ft
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
finish_test
|
|
|