~ubuntu-branches/ubuntu/saucy/db/saucy-proposed

« back to all changes in this revision

Viewing changes to sql/sqlite/test/tkt-f777251dc7a.test

  • Committer: Bazaar Package Importer
  • Author(s): Colin Watson
  • Date: 2010-10-25 22:16:35 UTC
  • mfrom: (13.1.11 sid)
  • Revision ID: james.westby@ubuntu.com-20101025221635-k0o38lxdx9kle3mh
Tags: 5.0.26-3ubuntu1
* Resynchronise with Debian.  Remaining changes:
  - Pass --build/--host to configure to support cross-building, and don't
    override CC.
  - Disable the Java build when cross-building, for now.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# 2009 October 16
 
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 [f777251dc7a] has been
 
14
# fixed.  
 
15
#
 
16
 
 
17
set testdir [file dirname $argv0]
 
18
source $testdir/tester.tcl
 
19
 
 
20
do_test tkt-f7772-1.1 {
 
21
  execsql {
 
22
     CREATE TEMP TABLE t1(x UNIQUE);
 
23
     INSERT INTO t1 VALUES(1);
 
24
     CREATE TABLE t2(x, y);
 
25
     INSERT INTO t2 VALUES(1, 2);
 
26
     CREATE TEMP TABLE t3(w, z);
 
27
  }
 
28
} {}
 
29
 
 
30
proc force_rollback {} {
 
31
  catch {db eval {INSERT OR ROLLBACK INTO t1 VALUES(1)}}
 
32
}
 
33
db function force_rollback force_rollback
 
34
 
 
35
do_test tkt-f7772-1.2 {
 
36
  catchsql {
 
37
    BEGIN IMMEDIATE;
 
38
    SELECT x, force_rollback(), EXISTS(SELECT 1 FROM t3 WHERE w=x) FROM t2;
 
39
  }
 
40
} {1 {callback requested query abort}}
 
41
do_test tkt-f7772-1.3 {
 
42
  sqlite3_get_autocommit db
 
43
} {1}
 
44
 
 
45
do_test tkt-f7772-2.1 {
 
46
  execsql {
 
47
     DROP TABLE IF EXISTS t1;
 
48
     DROP TABLE IF EXISTS t2;
 
49
     DROP TABLE IF EXISTS t3;
 
50
 
 
51
     CREATE TEMP TABLE t1(x UNIQUE);
 
52
     INSERT INTO t1 VALUES(1);
 
53
     CREATE TABLE t2(x, y);
 
54
     INSERT INTO t2 VALUES(1, 2);
 
55
  }
 
56
} {}
 
57
do_test tkt-f7772-2.2 {
 
58
  execsql {
 
59
    BEGIN IMMEDIATE;
 
60
    CREATE TEMP TABLE t3(w, z);
 
61
  }
 
62
  catchsql {
 
63
    SELECT x, force_rollback(), EXISTS(SELECT 1 FROM t3 WHERE w=x) FROM t2
 
64
  }
 
65
} {1 {callback requested query abort}}
 
66
do_test tkt-f7772-2.3 {
 
67
  sqlite3_get_autocommit db
 
68
} {1}
 
69
 
 
70
do_test tkt-f7772-3.1 {
 
71
  execsql {
 
72
    DROP TABLE IF EXISTS t1;
 
73
    DROP TABLE IF EXISTS t2;
 
74
    DROP TABLE IF EXISTS t3;
 
75
 
 
76
    CREATE TEMP TABLE t1(x);
 
77
    CREATE TABLE t2(x);
 
78
    CREATE TABLE t3(x);
 
79
  
 
80
    INSERT INTO t1 VALUES(1);
 
81
    INSERT INTO t1 VALUES(2);
 
82
    INSERT INTO t2 VALUES(1);
 
83
    INSERT INTO t2 VALUES(2);
 
84
  }
 
85
} {}
 
86
 
 
87
proc ins {} { db eval {INSERT INTO t3 VALUES('hello')} }
 
88
db function ins ins
 
89
 
 
90
do_test tkt-f7772-3.2 {
 
91
  execsql {
 
92
    SELECT ins() AS x FROM t2 UNION ALL SELECT ins() AS x FROM t1
 
93
  }
 
94
} {{} {} {} {}}
 
95
do_test tkt-f7772-3.3 {
 
96
  execsql { SELECT * FROM t3 }
 
97
} {hello hello hello hello}
 
98
 
 
99
finish_test