aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/sqlite/unix/sqlite-3.5.1/test/tkt1644.test
diff options
context:
space:
mode:
authordan miller2007-10-20 02:49:29 +0000
committerdan miller2007-10-20 02:49:29 +0000
commite36d23a85ebff914d74bb541558c2b6082b78edb (patch)
tree54b58fdf162e78af64055282a6035c8d2443389d /libraries/sqlite/unix/sqlite-3.5.1/test/tkt1644.test
parent* Fixed an issue whereby avatar chat distances were being calculated against ... (diff)
downloadopensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.zip
opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.gz
opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.bz2
opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.xz
sqlite source (unix build) added to libraries
Diffstat (limited to 'libraries/sqlite/unix/sqlite-3.5.1/test/tkt1644.test')
-rw-r--r--libraries/sqlite/unix/sqlite-3.5.1/test/tkt1644.test111
1 files changed, 111 insertions, 0 deletions
diff --git a/libraries/sqlite/unix/sqlite-3.5.1/test/tkt1644.test b/libraries/sqlite/unix/sqlite-3.5.1/test/tkt1644.test
new file mode 100644
index 0000000..aa26a88
--- /dev/null
+++ b/libraries/sqlite/unix/sqlite-3.5.1/test/tkt1644.test
@@ -0,0 +1,111 @@
1# 2006 January 30
2#
3# The author disclaims copyright to this source code. In place of
4# a legal notice, here is a blessing:
5#
6# May you do good and not evil.
7# May you find forgiveness for yourself and forgive others.
8# May you share freely, never taking more than you give.
9#
10#***********************************************************************
11# This file implements regression tests for SQLite library.
12#
13# This file implements tests to verify that ticket #1644 is
14# fixed. Ticket #1644 complains that precompiled statements
15# are not expired correctly as a result of changes to TEMP
16# views and triggers.
17#
18
19set testdir [file dirname $argv0]
20source $testdir/tester.tcl
21
22ifcapable !tempdb||!view {
23 finish_test
24 return
25}
26
27# Create two tables T1 and T2 and make V1 point to T1.
28do_test tkt1644-1.1 {
29 execsql {
30 CREATE TABLE t1(a);
31 INSERT INTO t1 VALUES(1);
32 CREATE TABLE t2(b);
33 INSERT INTO t2 VALUES(99);
34 CREATE TEMP VIEW v1 AS SELECT * FROM t1;
35 SELECT * FROM v1;
36 }
37} {1}
38
39# The "SELECT * FROM v1" should be in the TCL interface cache below.
40# It will continue to point to T1 unless the cache is invalidated when
41# the view changes.
42#
43do_test tkt1644-1.2 {
44 execsql {
45 DROP VIEW v1;
46 CREATE TEMP VIEW v1 AS SELECT * FROM t2;
47 SELECT * FROM v1;
48 }
49} {99}
50
51# Cache an access to the T1 table.
52#
53do_test tkt1644-1.3 {
54 execsql {
55 SELECT * FROM t1;
56 }
57} {1}
58
59# Create a temp table T1. Make sure the cache is invalidated so that
60# the statement is recompiled and refers to the empty temp table.
61#
62do_test tkt1644-1.4 {
63 execsql {
64 CREATE TEMP TABLE t1(x);
65 }
66 execsql {
67 SELECT * FROM t1;
68 }
69} {}
70
71ifcapable view {
72 do_test tkt1644-2.1 {
73 execsql {
74 CREATE TEMP TABLE temp_t1(a, b);
75 }
76 set ::DB [sqlite3_connection_pointer db]
77 set ::STMT [sqlite3_prepare $::DB "SELECT * FROM temp_t1" -1 DUMMY]
78 execsql {
79 DROP TABLE temp_t1;
80 }
81 list [sqlite3_step $::STMT] [sqlite3_finalize $::STMT]
82 } {SQLITE_ERROR SQLITE_SCHEMA}
83
84 do_test tkt1644-2.2 {
85 execsql {
86 CREATE TABLE real_t1(a, b);
87 CREATE TEMP VIEW temp_v1 AS SELECT * FROM real_t1;
88 }
89 set ::DB [sqlite3_connection_pointer db]
90 set ::STMT [sqlite3_prepare $::DB "SELECT * FROM temp_v1" -1 DUMMY]
91 execsql {
92 DROP VIEW temp_v1;
93 }
94 list [sqlite3_step $::STMT] [sqlite3_finalize $::STMT]
95 } {SQLITE_ERROR SQLITE_SCHEMA}
96
97 do_test tkt1644-2.3 {
98 execsql {
99 CREATE TEMP VIEW temp_v1 AS SELECT * FROM real_t1 LIMIT 10 OFFSET 10;
100 }
101 set ::DB [sqlite3_connection_pointer db]
102 set ::STMT [sqlite3_prepare $::DB "SELECT * FROM temp_v1" -1 DUMMY]
103 execsql {
104 DROP VIEW temp_v1;
105 }
106 list [sqlite3_step $::STMT] [sqlite3_finalize $::STMT]
107 } {SQLITE_ERROR SQLITE_SCHEMA}
108}
109
110
111finish_test