blob: 610b3f6bf05d3a3f8a3e2fbca8b1d12191c239e4 [file] [log] [blame]
danb0137382018-08-20 20:01:01 +00001# 2018 August 20
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#
12
13set testdir [file dirname $argv0]
14source $testdir/tester.tcl
15source $testdir/malloc_common.tcl
16set testprefix altermalloc2
17
18# If SQLITE_OMIT_ALTERTABLE is defined, omit this file.
19ifcapable !altertable {
20 finish_test
21 return
22}
23
24do_execsql_test 1.0 {
25 CREATE TABLE t1(abcd, efgh);
26}
27faultsim_save_and_close
28
29do_faultsim_test 1 -prep {
30 faultsim_restore_and_reopen
31} -body {
32 execsql {
33 ALTER TABLE t1 RENAME abcd TO dcba
34 }
35} -test {
36 faultsim_test_result {0 {}}
37}
38
39catch {db close}
40forcedelete test.db
41sqlite3 db test.db
42do_execsql_test 2.0 {
43 PRAGMA encoding = 'utf-16';
44 CREATE TABLE t1(abcd, efgh);
45}
46faultsim_save_and_close
47
48do_faultsim_test 2 -prep {
49 faultsim_restore_and_reopen
50} -body {
51 execsql {
52 ALTER TABLE t1 RENAME abcd TO dcba
53 }
54} -test {
55 faultsim_test_result {0 {}}
56}
57
58
59reset_db
60do_execsql_test 3.0 {
61 CREATE TABLE t1(abcd, efgh);
62 CREATE VIEW v1 AS SELECT * FROM t1 WHERE abcd>efgh;
63}
64faultsim_save_and_close
65
66do_faultsim_test 3 -prep {
67 faultsim_restore_and_reopen
68} -body {
69 execsql {
70 ALTER TABLE t1 RENAME abcd TO dcba
71 }
72} -test {
73 faultsim_test_result {0 {}}
74}
dan34566c42018-09-20 17:21:21 +000075
76reset_db
77do_execsql_test 4.0 {
78 CREATE TABLE rr(a, b);
79 CREATE VIEW vv AS SELECT * FROM rr;
80
81 CREATE TRIGGER vv1 INSTEAD OF INSERT ON vv BEGIN
82 SELECT 1, 2, 3;
83 END;
84 CREATE TRIGGER tr1 AFTER INSERT ON rr BEGIN
85 INSERT INTO vv VALUES(new.a, new.b);
86 END;
87} {}
88
89faultsim_save_and_close
90do_faultsim_test 4 -faults oom-* -prep {
91 faultsim_restore_and_reopen
92 execsql { SELECT * FROM sqlite_master }
93} -body {
94 execsql {
95 ALTER TABLE rr RENAME a TO c;
96 }
97} -test {
98 faultsim_test_result {0 {}}
99}
100
danb0137382018-08-20 20:01:01 +0000101finish_test