mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
The fullfsync, checkpoint_fullfsync, and cache_spill pragmas apply to all
files of a database connection, including those opened by future ATTACH statements. FossilOrigin-Name: d07c4331a28d44deca1ece8a34118f5b121b3ee2
This commit is contained in:
@ -121,6 +121,7 @@ ifcapable attach {
|
||||
#
|
||||
db close
|
||||
delete_file test.db test.db-journal
|
||||
delete_file test2.db test2.db-journal
|
||||
sqlite3 db test.db
|
||||
do_execsql_test pragma2-4.1 {
|
||||
PRAGMA cache_spill;
|
||||
@ -147,6 +148,10 @@ do_execsql_test pragma2-4.3 {
|
||||
INSERT INTO t1 SELECT a+32, randomblob(400), a+32, randomblob(400) FROM t1;
|
||||
INSERT INTO t1 SELECT a+64, randomblob(400), a+64, randomblob(400) FROM t1;
|
||||
COMMIT;
|
||||
ATTACH 'test2.db' AS aux1;
|
||||
CREATE TABLE aux1.t2(a INTEGER PRIMARY KEY, b, c, d);
|
||||
INSERT INTO t2 SELECT * FROM t1;
|
||||
DETACH aux1;
|
||||
PRAGMA cache_spill=ON;
|
||||
} {}
|
||||
do_test pragma2-4.4 {
|
||||
@ -166,4 +171,24 @@ do_test pragma2-4.5 {
|
||||
}
|
||||
} {main reserved temp unknown} ;# No cache spill, so no exclusive lock
|
||||
|
||||
# Verify that newly attached databases inherit the cache_spill=OFF
|
||||
# setting.
|
||||
#
|
||||
do_execsql_test pragma2-4.6 {
|
||||
COMMIT;
|
||||
ATTACH 'test2.db' AS aux1;
|
||||
PRAGMA aux1.cache_size=50;
|
||||
BEGIN;
|
||||
UPDATE t2 SET c=c+1;
|
||||
PRAGMA lock_status;
|
||||
} {main unlocked temp unknown aux1 reserved}
|
||||
do_execsql_test pragma2-4.7 {
|
||||
COMMIT;
|
||||
PRAGMA cache_spill=ON; -- Applies to all databases
|
||||
BEGIN;
|
||||
UPDATE t2 SET c=c-1;
|
||||
PRAGMA lock_status;
|
||||
} {main unlocked temp unknown aux1 exclusive}
|
||||
|
||||
|
||||
finish_test
|
||||
|
Reference in New Issue
Block a user