| Index: third_party/sqlite/sqlite-src-3100200/test/pragma3.test
|
| diff --git a/third_party/sqlite/sqlite-src-3100200/test/pragma3.test b/third_party/sqlite/sqlite-src-3100200/test/pragma3.test
|
| deleted file mode 100644
|
| index b7ea4d3fc625c9d8f2ee87ef0080bf35a518f4a3..0000000000000000000000000000000000000000
|
| --- a/third_party/sqlite/sqlite-src-3100200/test/pragma3.test
|
| +++ /dev/null
|
| @@ -1,253 +0,0 @@
|
| -# 2014-12-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.
|
| -#
|
| -#***********************************************************************
|
| -# This file implements regression tests for SQLite library.
|
| -#
|
| -# This file implements tests for PRAGMA data_version command.
|
| -#
|
| -
|
| -set testdir [file dirname $argv0]
|
| -source $testdir/tester.tcl
|
| -
|
| -do_execsql_test pragma3-100 {
|
| - PRAGMA data_version;
|
| -} {1}
|
| -do_execsql_test pragma3-101 {
|
| - PRAGMA temp.data_version;
|
| -} {1}
|
| -
|
| -# Writing to the pragma is a no-op
|
| -do_execsql_test pragma3-102 {
|
| - PRAGMA main.data_version=1234;
|
| - PRAGMA main.data_version;
|
| -} {1 1}
|
| -
|
| -# EVIDENCE-OF: R-27726-60934 The "PRAGMA data_version" command provides
|
| -# an indication that the database file has been modified.
|
| -#
|
| -# EVIDENCE-OF: R-47505-58569 The "PRAGMA data_version" value is
|
| -# unchanged for commits made on the same database connection.
|
| -#
|
| -do_execsql_test pragma3-110 {
|
| - PRAGMA data_version;
|
| - BEGIN IMMEDIATE;
|
| - PRAGMA data_version;
|
| - CREATE TABLE t1(a);
|
| - INSERT INTO t1 VALUES(100),(200),(300);
|
| - PRAGMA data_version;
|
| - COMMIT;
|
| - SELECT * FROM t1;
|
| - PRAGMA data_version;
|
| -} {1 1 1 100 200 300 1}
|
| -
|
| -sqlite3 db2 test.db
|
| -do_test pragma3-120 {
|
| - db2 eval {
|
| - SELECT * FROM t1;
|
| - PRAGMA data_version;
|
| - }
|
| -} {100 200 300 1}
|
| -
|
| -do_execsql_test pragma3-130 {
|
| - PRAGMA data_version;
|
| - BEGIN IMMEDIATE;
|
| - PRAGMA data_version;
|
| - INSERT INTO t1 VALUES(400),(500);
|
| - PRAGMA data_version;
|
| - COMMIT;
|
| - SELECT * FROM t1;
|
| - PRAGMA data_version;
|
| - PRAGMA shrink_memory;
|
| -} {1 1 1 100 200 300 400 500 1}
|
| -
|
| -# EVIDENCE-OF: R-63005-41812 The integer values returned by two
|
| -# invocations of "PRAGMA data_version" from the same connection will be
|
| -# different if changes were committed to the database by any other
|
| -# connection in the interim.
|
| -#
|
| -# Value went from 1 in pragma3-120 to 2 here.
|
| -#
|
| -do_test pragma3-140 {
|
| - db2 eval {
|
| - SELECT * FROM t1;
|
| - PRAGMA data_version;
|
| - BEGIN IMMEDIATE;
|
| - PRAGMA data_version;
|
| - UPDATE t1 SET a=a+1;
|
| - COMMIT;
|
| - SELECT * FROM t1;
|
| - PRAGMA data_version;
|
| - }
|
| -} {100 200 300 400 500 2 2 101 201 301 401 501 2}
|
| -do_execsql_test pragma3-150 {
|
| - SELECT * FROM t1;
|
| - PRAGMA data_version;
|
| -} {101 201 301 401 501 2}
|
| -
|
| -#
|
| -do_test pragma3-160 {
|
| - db eval {
|
| - BEGIN;
|
| - PRAGMA data_version;
|
| - UPDATE t1 SET a=555 WHERE a=501;
|
| - PRAGMA data_version;
|
| - SELECT * FROM t1 ORDER BY a;
|
| - PRAGMA data_version;
|
| - }
|
| -} {2 2 101 201 301 401 555 2}
|
| -do_test pragma3-170 {
|
| - db2 eval {
|
| - PRAGMA data_version;
|
| - }
|
| -} {2}
|
| -do_test pragma3-180 {
|
| - db eval {
|
| - COMMIT;
|
| - PRAGMA data_version;
|
| - }
|
| -} {2}
|
| -do_test pragma3-190 {
|
| - db2 eval {
|
| - PRAGMA data_version;
|
| - }
|
| -} {3}
|
| -
|
| -# EVIDENCE-OF: R-19326-44825 The "PRAGMA data_version" value is a local
|
| -# property of each database connection and so values returned by two
|
| -# concurrent invocations of "PRAGMA data_version" on separate database
|
| -# connections are often different even though the underlying database is
|
| -# identical.
|
| -#
|
| -do_test pragma3-195 {
|
| - expr {[db eval {PRAGMA data_version}]!=[db2 eval {PRAGMA data_version}]}
|
| -} {1}
|
| -
|
| -# EVIDENCE-OF: R-54562-06892 The behavior of "PRAGMA data_version" is
|
| -# the same for all database connections, including database connections
|
| -# in separate processes and shared cache database connections.
|
| -#
|
| -# The next block checks the behavior for separate processes.
|
| -#
|
| -do_test pragma3-200 {
|
| - db eval {PRAGMA data_version; SELECT * FROM t1;}
|
| -} {2 101 201 301 401 555}
|
| -do_test pragma3-201 {
|
| - set fd [open pragma3.txt wb]
|
| - puts $fd {
|
| - sqlite3 db test.db;
|
| - db eval {DELETE FROM t1 WHERE a>300};
|
| - db close;
|
| - exit;
|
| - }
|
| - close $fd
|
| - exec [info nameofexec] pragma3.txt
|
| - forcedelete pragma3.txt
|
| - db eval {
|
| - PRAGMA data_version;
|
| - SELECT * FROM t1;
|
| - }
|
| -} {3 101 201}
|
| -db2 close
|
| -db close
|
| -
|
| -# EVIDENCE-OF: R-54562-06892 The behavior of "PRAGMA data_version" is
|
| -# the same for all database connections, including database connections
|
| -# in separate processes and shared cache database connections.
|
| -#
|
| -# The next block checks that behavior is the same for shared-cache.
|
| -#
|
| -ifcapable shared_cache {
|
| - set ::enable_shared_cache [sqlite3_enable_shared_cache 1]
|
| - sqlite3 db test.db
|
| - sqlite3 db2 test.db
|
| - do_test pragma3-300 {
|
| - db eval {
|
| - PRAGMA data_version;
|
| - BEGIN;
|
| - CREATE TABLE t3(a,b,c);
|
| - CREATE TABLE t4(x,y,z);
|
| - INSERT INTO t4 VALUES(123,456,789);
|
| - PRAGMA data_version;
|
| - COMMIT;
|
| - PRAGMA data_version;
|
| - }
|
| - } {1 1 1}
|
| - do_test pragma3-310 {
|
| - db2 eval {
|
| - PRAGMA data_version;
|
| - BEGIN;
|
| - INSERT INTO t3(a,b,c) VALUES('abc','def','ghi');
|
| - SELECT * FROM t3;
|
| - PRAGMA data_version;
|
| - }
|
| - } {2 abc def ghi 2}
|
| - # The transaction in db2 has not yet committed, so the data_version in
|
| - # db is unchanged.
|
| - do_test pragma3-320 {
|
| - db eval {
|
| - PRAGMA data_version;
|
| - SELECT * FROM t4;
|
| - }
|
| - } {1 123 456 789}
|
| - do_test pragma3-330 {
|
| - db2 eval {
|
| - COMMIT;
|
| - PRAGMA data_version;
|
| - SELECT * FROM t4;
|
| - }
|
| - } {2 123 456 789}
|
| - do_test pragma3-340 {
|
| - db eval {
|
| - PRAGMA data_version;
|
| - SELECT * FROM t3;
|
| - SELECT * FROM t4;
|
| - }
|
| - } {2 abc def ghi 123 456 789}
|
| - db2 close
|
| - db close
|
| - sqlite3_enable_shared_cache $::enable_shared_cache
|
| -}
|
| -
|
| -# Make sure this also works in WAL mode
|
| -#
|
| -# This will not work with the in-memory journal permutation, as opening
|
| -# [db2] switches the journal mode back to "memory"
|
| -#
|
| -ifcapable wal {
|
| -if {[permutation]!="inmemory_journal"} {
|
| -
|
| - sqlite3 db test.db
|
| - db eval {PRAGMA journal_mode=WAL}
|
| - sqlite3 db2 test.db
|
| - do_test pragma3-400 {
|
| - db eval {
|
| - PRAGMA data_version;
|
| - PRAGMA journal_mode;
|
| - SELECT * FROM t1;
|
| - }
|
| - } {2 wal 101 201}
|
| - do_test pragma3-410 {
|
| - db2 eval {
|
| - PRAGMA data_version;
|
| - PRAGMA journal_mode;
|
| - SELECT * FROM t1;
|
| - }
|
| - } {2 wal 101 201}
|
| - do_test pragma3-420 {
|
| - db eval {UPDATE t1 SET a=111*(a/100); PRAGMA data_version; SELECT * FROM t1}
|
| - } {2 111 222}
|
| - do_test pragma3-430 {
|
| - db2 eval {PRAGMA data_version; SELECT * FROM t1;}
|
| - } {3 111 222}
|
| - db2 close
|
| -}
|
| -}
|
| -
|
| -finish_test
|
|
|