blob: f1483dfa1d398c7fe8bb9d6a268110f0ec2ef4f3 [file] [log] [blame]
drh6adab7a2013-04-08 18:58:00 +00001/* Test cases involving incomplete transactions that must be rolled back.
2*/
3--task 1
4 DROP TABLE IF EXISTS t1;
5 CREATE TABLE t1(a INTEGER PRIMARY KEY, b);
6 --sleep 1
7 INSERT INTO t1 VALUES(1, randomblob(2000));
8 INSERT INTO t1 VALUES(2, randomblob(1000));
9 --sleep 1
10 INSERT INTO t1 SELECT a+2, randomblob(1500) FROM t1;
11 INSERT INTO t1 SELECT a+4, randomblob(1500) FROM t1;
12 INSERT INTO t1 SELECT a+8, randomblob(1500) FROM t1;
13 --sleep 1
14 INSERT INTO t1 SELECT a+16, randomblob(1500) FROM t1;
15 --sleep 1
16 INSERT INTO t1 SELECT a+32, randomblob(1500) FROM t1;
17 SELECT count(*) FROM t1;
18 --match 64
19 SELECT avg(length(b)) FROM t1;
20 --match 1500.0
21 --sleep 2
22 UPDATE t1 SET b='x'||a||'y';
drhe3147332013-05-17 12:51:49 +000023 SELECT sum(length(b)) FROM t1;
drh6adab7a2013-04-08 18:58:00 +000024 --match 247
25 SELECT a FROM t1 WHERE b='x17y';
26 --match 17
27 CREATE INDEX t1b ON t1(b);
28 SELECT a FROM t1 WHERE b='x17y';
29 --match 17
30 SELECT a FROM t1 WHERE b GLOB 'x2?y' ORDER BY b DESC LIMIT 5;
31 --match 29 28 27 26 25
32--end
33--wait 1
34--task 2
drhcc285c52015-03-11 14:34:38 +000035 DROP TABLE IF EXISTS t2;
drh6adab7a2013-04-08 18:58:00 +000036 CREATE TABLE t2(a INTEGER PRIMARY KEY, b);
37 INSERT INTO t2 SELECT a, b FROM t1;
38 UPDATE t1 SET b='x'||a||'y';
drhe3147332013-05-17 12:51:49 +000039 SELECT sum(length(b)) FROM t2;
drh6adab7a2013-04-08 18:58:00 +000040 --match 247
41 SELECT a FROM t2 WHERE b='x17y';
42 --match 17
43 CREATE INDEX t2b ON t2(b);
44 SELECT a FROM t2 WHERE b='x17y';
45 --match 17
46 SELECT a FROM t2 WHERE b GLOB 'x2?y' ORDER BY b DESC LIMIT 5;
47 --match 29 28 27 26 25
48--end
49--task 3
drhcc285c52015-03-11 14:34:38 +000050 DROP TABLE IF EXISTS t3;
drh6adab7a2013-04-08 18:58:00 +000051 CREATE TABLE t3(a INTEGER PRIMARY KEY, b);
52 INSERT INTO t3 SELECT a, b FROM t1;
53 UPDATE t1 SET b='x'||a||'y';
drhe3147332013-05-17 12:51:49 +000054 SELECT sum(length(b)) FROM t3;
drh6adab7a2013-04-08 18:58:00 +000055 --match 247
56 SELECT a FROM t3 WHERE b='x17y';
57 --match 17
58 CREATE INDEX t3b ON t3(b);
59 SELECT a FROM t3 WHERE b='x17y';
60 --match 17
61 SELECT a FROM t3 WHERE b GLOB 'x2?y' ORDER BY b DESC LIMIT 5;
62 --match 29 28 27 26 25
63--end
64--task 4
drhcc285c52015-03-11 14:34:38 +000065 DROP TABLE IF EXISTS t4;
drh6adab7a2013-04-08 18:58:00 +000066 CREATE TABLE t4(a INTEGER PRIMARY KEY, b);
67 INSERT INTO t4 SELECT a, b FROM t1;
68 UPDATE t1 SET b='x'||a||'y';
drhe3147332013-05-17 12:51:49 +000069 SELECT sum(length(b)) FROM t4;
drh6adab7a2013-04-08 18:58:00 +000070 --match 247
71 SELECT a FROM t4 WHERE b='x17y';
72 --match 17
73 CREATE INDEX t4b ON t4(b);
74 SELECT a FROM t4 WHERE b='x17y';
75 --match 17
76 SELECT a FROM t4 WHERE b GLOB 'x2?y' ORDER BY b DESC LIMIT 5;
77 --match 29 28 27 26 25
78--end
79--task 5
drhcc285c52015-03-11 14:34:38 +000080 DROP TABLE IF EXISTS t5;
drh6adab7a2013-04-08 18:58:00 +000081 CREATE TABLE t5(a INTEGER PRIMARY KEY, b);
82 INSERT INTO t5 SELECT a, b FROM t1;
83 UPDATE t1 SET b='x'||a||'y';
drhe3147332013-05-17 12:51:49 +000084 SELECT sum(length(b)) FROM t5;
drh6adab7a2013-04-08 18:58:00 +000085 --match 247
86 SELECT a FROM t5 WHERE b='x17y';
87 --match 17
88 CREATE INDEX t5b ON t5(b);
89 SELECT a FROM t5 WHERE b='x17y';
90 --match 17
91 SELECT a FROM t5 WHERE b GLOB 'x2?y' ORDER BY b DESC LIMIT 5;
92 --match 29 28 27 26 25
93--end
94
95--wait all
96/* After the database file has been set up, run the crash2 subscript
97** multiple times. */
98--source crash02.subtest
99--source crash02.subtest
100--source crash02.subtest
101--source crash02.subtest
102--source crash02.subtest
103--source crash02.subtest
104--source crash02.subtest
105--source crash02.subtest
106--source crash02.subtest