1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- # 2011 March 18
- #
- # 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 to verify that ticket
- # [f7b4edece25c994857dc139207f55a53c8319fae] has been fixed.
- #
- set testdir [file dirname $argv0]
- source $testdir/tester.tcl
- # Open two database connections to the same database file in
- # shared cache mode. Create update hooks that will fire on
- # each connection.
- #
- db close
- set ::enable_shared_cache [sqlite3_enable_shared_cache 1]
- sqlite3 db1 test.db
- sqlite3 db2 test.db
- unset -nocomplain HOOKS
- set HOOKS {}
- proc update_hook {args} { lappend ::HOOKS $args }
- db1 update_hook update_hook
- db2 update_hook update_hook
- # Create a prepared statement
- #
- do_test tkt-f7b4edec-1 {
- execsql { CREATE TABLE t1(x, y); } db1
- execsql { INSERT INTO t1 VALUES(1, 2) } db1
- set ::HOOKS
- } {{INSERT main t1 1}}
- # In the second database connection cause the schema to be reparsed
- # without changing the schema cookie.
- #
- set HOOKS {}
- do_test tkt-f7b4edec-2 {
- execsql {
- BEGIN;
- DROP TABLE t1;
- CREATE TABLE t1(x, y);
- ROLLBACK;
- } db2
- set ::HOOKS
- } {}
- # Rerun the prepared statement that was created prior to the
- # schema reparse. Verify that the update-hook gives the correct
- # output.
- #
- set HOOKS {}
- do_test tkt-f7b4edec-3 {
- execsql { INSERT INTO t1 VALUES(1, 2) } db1
- set ::HOOKS
- } {{INSERT main t1 2}}
- # Be sure to restore the original shared-cache mode setting before
- # returning.
- #
- db1 close
- db2 close
- sqlite3_enable_shared_cache $::enable_shared_cache
- finish_test
|