xref: /sqlite-3.40.0/test/alterlegacy.test (revision 6a5a13df)
1674b8942Sdan# 2018 September 20
2674b8942Sdan#
3674b8942Sdan# The author disclaims copyright to this source code.  In place of
4674b8942Sdan# a legal notice, here is a blessing:
5674b8942Sdan#
6674b8942Sdan#    May you do good and not evil.
7674b8942Sdan#    May you find forgiveness for yourself and forgive others.
8674b8942Sdan#    May you share freely, never taking more than you give.
9674b8942Sdan#
10674b8942Sdan#*************************************************************************
11674b8942Sdan#
12674b8942Sdan
13674b8942Sdanset testdir [file dirname $argv0]
14674b8942Sdansource $testdir/tester.tcl
15674b8942Sdanset testprefix alterlegacy
16674b8942Sdan
17674b8942Sdan# If SQLITE_OMIT_ALTERTABLE is defined, omit this file.
18674b8942Sdanifcapable !altertable {
19674b8942Sdan  finish_test
20674b8942Sdan  return
21674b8942Sdan}
22674b8942Sdan
23674b8942Sdando_execsql_test 1.0 {
24674b8942Sdan  PRAGMA legacy_alter_table = 1;
25674b8942Sdan  CREATE TABLE t1(a, b, CHECK(t1.a != t1.b));
26674b8942Sdan  CREATE TABLE t2(a, b);
27674b8942Sdan  CREATE INDEX t2expr ON t2(a) WHERE t2.b>0;
28674b8942Sdan}
29674b8942Sdan
30674b8942Sdando_execsql_test 1.1 {
31674b8942Sdan  SELECT sql FROM sqlite_master
32674b8942Sdan} {
33674b8942Sdan  {CREATE TABLE t1(a, b, CHECK(t1.a != t1.b))}
34674b8942Sdan  {CREATE TABLE t2(a, b)}
35674b8942Sdan  {CREATE INDEX t2expr ON t2(a) WHERE t2.b>0}
36674b8942Sdan}
37674b8942Sdan
38674b8942Sdan# Legacy behavior is to corrupt the schema in this case, as the table name in
39674b8942Sdan# the CHECK constraint is incorrect after "t1" is renamed. This version is
40674b8942Sdan# slightly different - it rejects the change and rolls back the transaction.
41674b8942Sdando_catchsql_test 1.2 {
42674b8942Sdan  ALTER TABLE t1 RENAME TO t1new;
43*6a5a13dfSdan} {1 {error in table t1new after rename: no such column: t1.a}}
44674b8942Sdan
45674b8942Sdando_execsql_test 1.3 {
46674b8942Sdan  CREATE TABLE t3(c, d);
47674b8942Sdan  ALTER TABLE t3 RENAME TO t3new;
48674b8942Sdan  DROP TABLE t3new;
49674b8942Sdan}
50674b8942Sdan
51674b8942Sdando_execsql_test 1.4 {
52674b8942Sdan  SELECT sql FROM sqlite_master
53674b8942Sdan} {
54674b8942Sdan  {CREATE TABLE t1(a, b, CHECK(t1.a != t1.b))}
55674b8942Sdan  {CREATE TABLE t2(a, b)}
56674b8942Sdan  {CREATE INDEX t2expr ON t2(a) WHERE t2.b>0}
57674b8942Sdan}
58674b8942Sdan
59674b8942Sdan
60674b8942Sdando_catchsql_test 1.3 {
61674b8942Sdan  ALTER TABLE t2 RENAME TO t2new;
62*6a5a13dfSdan} {1 {error in index t2expr after rename: no such column: t2.b}}
63674b8942Sdando_execsql_test 1.4 {
64674b8942Sdan  SELECT sql FROM sqlite_master
65674b8942Sdan} {
66674b8942Sdan  {CREATE TABLE t1(a, b, CHECK(t1.a != t1.b))}
67674b8942Sdan  {CREATE TABLE t2(a, b)}
68674b8942Sdan  {CREATE INDEX t2expr ON t2(a) WHERE t2.b>0}
69674b8942Sdan}
70674b8942Sdan
71674b8942Sdan
72674b8942Sdan#-------------------------------------------------------------------------
73674b8942Sdanreset_db
74674b8942Sdanifcapable vtab {
75674b8942Sdan  register_echo_module db
76674b8942Sdan
77674b8942Sdan  do_execsql_test 2.0 {
78674b8942Sdan    PRAGMA legacy_alter_table = 1;
79674b8942Sdan    CREATE TABLE abc(a, b, c);
80674b8942Sdan    INSERT INTO abc VALUES(1, 2, 3);
81674b8942Sdan    CREATE VIRTUAL TABLE eee USING echo('abc');
82674b8942Sdan    SELECT * FROM eee;
83674b8942Sdan  } {1 2 3}
84674b8942Sdan
85674b8942Sdan  do_execsql_test 2.1 {
86674b8942Sdan    ALTER TABLE eee RENAME TO fff;
87674b8942Sdan    SELECT * FROM fff;
88674b8942Sdan  } {1 2 3}
89674b8942Sdan
90674b8942Sdan  db close
91674b8942Sdan  sqlite3 db test.db
92674b8942Sdan
93674b8942Sdan  do_catchsql_test 2.2 {
94674b8942Sdan    ALTER TABLE fff RENAME TO ggg;
95674b8942Sdan  } {1 {no such module: echo}}
96674b8942Sdan}
97674b8942Sdan
98674b8942Sdan#-------------------------------------------------------------------------
99674b8942Sdanreset_db
100674b8942Sdan
101674b8942Sdando_execsql_test 3.0 {
102674b8942Sdan  PRAGMA legacy_alter_table = 1;
103674b8942Sdan  CREATE TABLE txx(a, b, c);
104674b8942Sdan  INSERT INTO txx VALUES(1, 2, 3);
105674b8942Sdan  CREATE VIEW vvv AS SELECT main.txx.a, txx.b, c FROM txx;
106674b8942Sdan  CREATE VIEW uuu AS SELECT main.one.a, one.b, c FROM txx AS one;
107674b8942Sdan  CREATE VIEW temp.ttt AS SELECT main.txx.a, txx.b, one.b, main.one.a FROM txx AS one, txx;
108674b8942Sdan}
109674b8942Sdan
110674b8942Sdando_execsql_test 3.1.1 {
111674b8942Sdan  SELECT * FROM vvv;
112674b8942Sdan} {1 2 3}
113674b8942Sdando_execsql_test 3.1.2a {
114674b8942Sdan  ALTER TABLE txx RENAME TO "t xx";
115674b8942Sdan}
116674b8942Sdando_catchsql_test 3.1.2b {
117674b8942Sdan  SELECT * FROM vvv;
118674b8942Sdan} {1 {no such table: main.txx}}
119674b8942Sdando_execsql_test 3.1.3 {
120674b8942Sdan  SELECT sql FROM sqlite_master WHERE name='vvv';
121674b8942Sdan} {{CREATE VIEW vvv AS SELECT main.txx.a, txx.b, c FROM txx}}
122674b8942Sdan
123674b8942Sdan
124674b8942Sdando_catchsql_test 3.2.1 {
125674b8942Sdan  SELECT * FROM uuu;
126674b8942Sdan} {1 {no such table: main.txx}}
127674b8942Sdando_execsql_test 3.2.2 {
128674b8942Sdan  SELECT sql FROM sqlite_master WHERE name='uuu';;
129674b8942Sdan} {{CREATE VIEW uuu AS SELECT main.one.a, one.b, c FROM txx AS one}}
130674b8942Sdan
131674b8942Sdando_catchsql_test 3.3.1 {
132674b8942Sdan  SELECT * FROM ttt;
133674b8942Sdan} {1 {no such table: txx}}
134674b8942Sdando_execsql_test 3.3.2 {
135674b8942Sdan  SELECT sql FROM sqlite_temp_master WHERE name='ttt';
136674b8942Sdan} {{CREATE VIEW ttt AS SELECT main.txx.a, txx.b, one.b, main.one.a FROM txx AS one, txx}}
137674b8942Sdan
138674b8942Sdan#-------------------------------------------------------------------------
139674b8942Sdanreset_db
140674b8942Sdando_execsql_test 4.0 {
141674b8942Sdan  PRAGMA legacy_alter_table = 1;
142674b8942Sdan  CREATE table t1(x, y);
143674b8942Sdan  CREATE table t2(a, b);
144674b8942Sdan
145674b8942Sdan  CREATE TRIGGER tr1 AFTER INSERT ON t1 BEGIN
146674b8942Sdan    SELECT t1.x, * FROM t1, t2;
147674b8942Sdan    INSERT INTO t2 VALUES(new.x, new.y);
148674b8942Sdan  END;
149674b8942Sdan}
150674b8942Sdan
151674b8942Sdando_execsql_test 4.1 {
152674b8942Sdan  INSERT INTO t1 VALUES(1, 1);
153674b8942Sdan  ALTER TABLE t1 RENAME TO t11;
154674b8942Sdan}
155674b8942Sdando_catchsql_test 4.1a {
156674b8942Sdan  INSERT INTO t11 VALUES(2, 2);
157674b8942Sdan} {1 {no such table: main.t1}}
158674b8942Sdando_execsql_test 4.1b {
159674b8942Sdan  ALTER TABLE t11 RENAME TO t1;
160674b8942Sdan  ALTER TABLE t2 RENAME TO t22;
161674b8942Sdan}
162674b8942Sdando_catchsql_test 4.1c {
163674b8942Sdan  INSERT INTO t1 VALUES(3, 3);
164674b8942Sdan} {1 {no such table: main.t2}}
165674b8942Sdan
166674b8942Sdanproc squish {a} {
167674b8942Sdan  string trim [regsub -all {[[:space:]][[:space:]]*} $a { }]
168674b8942Sdan}
169674b8942Sdandb func squish squish
170674b8942Sdando_test 4.2 {
171674b8942Sdan  execsql { SELECT squish(sql) FROM sqlite_master WHERE name = 'tr1' }
172674b8942Sdan} [list [squish {
173674b8942Sdan  CREATE TRIGGER tr1 AFTER INSERT ON "t1" BEGIN
174674b8942Sdan    SELECT t1.x, * FROM t1, t2;
175674b8942Sdan    INSERT INTO t2 VALUES(new.x, new.y);
176674b8942Sdan  END
177674b8942Sdan}]]
178674b8942Sdan
179674b8942Sdan#-------------------------------------------------------------------------
180674b8942Sdanreset_db
181674b8942Sdando_execsql_test 5.0 {
182674b8942Sdan  PRAGMA legacy_alter_table = 1;
183674b8942Sdan  CREATE TABLE t9(a, b, c);
184674b8942Sdan  CREATE TABLE t10(a, b, c);
185674b8942Sdan  CREATE TEMP TABLE t9(a, b, c);
186674b8942Sdan
187674b8942Sdan  CREATE TRIGGER temp.t9t AFTER INSERT ON temp.t9 BEGIN
188674b8942Sdan    INSERT INTO t10 VALUES(new.a, new.b, new.c);
189674b8942Sdan  END;
190674b8942Sdan
191674b8942Sdan  INSERT INTO temp.t9 VALUES(1, 2, 3);
192674b8942Sdan  SELECT * FROM t10;
193674b8942Sdan} {1 2 3}
194674b8942Sdan
195674b8942Sdando_execsql_test 5.1 {
196674b8942Sdan  ALTER TABLE temp.t9 RENAME TO 't1234567890'
197674b8942Sdan}
198674b8942Sdan
199674b8942Sdando_execsql_test 5.2 {
200674b8942Sdan  CREATE TABLE t1(a, b);
201674b8942Sdan  CREATE TABLE t2(a, b);
202674b8942Sdan  INSERT INTO t1 VALUES(1, 2);
203674b8942Sdan  INSERT INTO t2 VALUES(3, 4);
204674b8942Sdan  CREATE VIEW v AS SELECT one.a, one.b, t2.a, t2.b FROM t1 AS one, t2;
205674b8942Sdan  SELECT * FROM v;
206674b8942Sdan} {1 2 3 4}
207674b8942Sdan
208674b8942Sdando_execsql_test 5.3 {
209674b8942Sdan  ALTER TABLE t2 RENAME TO one;
210674b8942Sdan} {}
211674b8942Sdan
212674b8942Sdando_catchsql_test 5.4 {
213674b8942Sdan  SELECT  *  FROM v
214674b8942Sdan} {1 {no such table: main.t2}}
215674b8942Sdan
216674b8942Sdando_execsql_test 5.5 {
217674b8942Sdan  ALTER TABLE one RENAME TO t2;
218674b8942Sdan  DROP VIEW v;
219674b8942Sdan  CREATE VIEW temp.vv AS SELECT one.a, one.b, t2.a, t2.b FROM t1 AS one, t2;
220674b8942Sdan  SELECT * FROM vv;
221674b8942Sdan} {1 2 3 4}
222674b8942Sdan
223674b8942Sdando_execsql_test 5.6 {
224674b8942Sdan  ALTER TABLE t2 RENAME TO one;
225674b8942Sdan} {}
226674b8942Sdando_catchsql_test 5.7 {
227674b8942Sdan  SELECT  *  FROM vv
228674b8942Sdan} {1 {no such table: t2}}
229674b8942Sdan
230674b8942Sdan#-------------------------------------------------------------------------
231674b8942Sdan
232674b8942Sdanifcapable vtab {
233674b8942Sdan  register_tcl_module db
234674b8942Sdan  proc tcl_command {method args} {
235674b8942Sdan    switch -- $method {
236674b8942Sdan      xConnect {
237674b8942Sdan        return "CREATE TABLE t1(a, b, c)"
238674b8942Sdan      }
239674b8942Sdan    }
240674b8942Sdan    return {}
241674b8942Sdan  }
242674b8942Sdan
243674b8942Sdan  do_execsql_test 6.0 {
244674b8942Sdan    CREATE VIRTUAL TABLE x1 USING tcl(tcl_command);
245674b8942Sdan  }
246674b8942Sdan
247674b8942Sdan  do_execsql_test 6.1 {
248674b8942Sdan    ALTER TABLE x1 RENAME TO x2;
249674b8942Sdan    SELECT sql FROM sqlite_master WHERE name = 'x2'
250674b8942Sdan  } {{CREATE VIRTUAL TABLE "x2" USING tcl(tcl_command)}}
251674b8942Sdan
252674b8942Sdan  do_execsql_test 7.1 {
253674b8942Sdan    CREATE TABLE ddd(db, sql, zOld, zNew, bTemp);
254674b8942Sdan    INSERT INTO ddd VALUES(
255674b8942Sdan        'main', 'CREATE TABLE x1(i INTEGER, t TEXT)', 'ddd', NULL, 0
256674b8942Sdan    ), (
257674b8942Sdan        'main', 'CREATE TABLE x1(i INTEGER, t TEXT)', NULL, 'eee', 0
258674b8942Sdan    ), (
259674b8942Sdan        'main', NULL, 'ddd', 'eee', 0
260674b8942Sdan    );
261674b8942Sdan  } {}
262674b8942Sdan}
263674b8942Sdan
264674b8942Sdan#-------------------------------------------------------------------------
265674b8942Sdan#
266674b8942Sdanreset_db
267674b8942Sdanforcedelete test.db2
268674b8942Sdando_execsql_test 8.1 {
269674b8942Sdan  PRAGMA legacy_alter_table = 1;
270674b8942Sdan  ATTACH 'test.db2' AS aux;
271674b8942Sdan  PRAGMA foreign_keys = on;
272674b8942Sdan  CREATE TABLE aux.p1(a INTEGER PRIMARY KEY, b);
273674b8942Sdan  CREATE TABLE aux.c1(x INTEGER PRIMARY KEY, y REFERENCES p1(a));
274674b8942Sdan  INSERT INTO aux.p1 VALUES(1, 1);
275674b8942Sdan  INSERT INTO aux.p1 VALUES(2, 2);
276674b8942Sdan  INSERT INTO aux.c1 VALUES(NULL, 2);
277674b8942Sdan  CREATE TABLE aux.c2(x INTEGER PRIMARY KEY, y REFERENCES c1(a));
278674b8942Sdan}
279674b8942Sdan
280674b8942Sdando_execsql_test 8.2 {
281674b8942Sdan  ALTER TABLE aux.p1 RENAME TO ppp;
282674b8942Sdan}
283674b8942Sdan
284674b8942Sdando_execsql_test 8.2 {
285674b8942Sdan  INSERT INTO aux.c1 VALUES(NULL, 1);
286674b8942Sdan  SELECT sql FROM aux.sqlite_master WHERE name = 'c1';
287674b8942Sdan} {{CREATE TABLE c1(x INTEGER PRIMARY KEY, y REFERENCES "ppp"(a))}}
288674b8942Sdan
289674b8942Sdanreset_db
290674b8942Sdando_execsql_test 9.0 {
291674b8942Sdan  PRAGMA legacy_alter_table = 1;
292674b8942Sdan  CREATE TABLE t1(a, b, c);
293674b8942Sdan  CREATE VIEW v1 AS SELECT * FROM t2;
294674b8942Sdan}
295674b8942Sdando_execsql_test 9.1 {
296674b8942Sdan  ALTER TABLE t1 RENAME TO t3;
297674b8942Sdan} {}
298674b8942Sdando_execsql_test 9.1b {
299674b8942Sdan  ALTER TABLE t3 RENAME TO t1;
300674b8942Sdan} {}
301674b8942Sdando_execsql_test 9.2 {
302674b8942Sdan  DROP VIEW v1;
303674b8942Sdan  CREATE TRIGGER tr AFTER INSERT ON t1 BEGIN
304674b8942Sdan    INSERT INTO t2 VALUES(new.a);
305674b8942Sdan  END;
306674b8942Sdan}
307674b8942Sdando_execsql_test 9.3 {
308674b8942Sdan  ALTER TABLE t1 RENAME TO t3;
309674b8942Sdan} {}
310674b8942Sdan
311674b8942Sdanforcedelete test.db2
312674b8942Sdando_execsql_test 9.4 {
313674b8942Sdan  ALTER TABLE t3 RENAME TO t1;
314674b8942Sdan  DROP TRIGGER tr;
315674b8942Sdan
316674b8942Sdan  ATTACH 'test.db2' AS aux;
317674b8942Sdan  CREATE TRIGGER tr AFTER INSERT ON t1 WHEN new.a IS NULL BEGIN SELECT 1, 2, 3; END;
318674b8942Sdan
319674b8942Sdan  CREATE TABLE aux.t1(x);
320674b8942Sdan  CREATE TEMP TRIGGER tr AFTER INSERT ON aux.t1 BEGIN SELECT 1, 2, 3; END;
321674b8942Sdan}
322674b8942Sdando_execsql_test 9.5 {
323674b8942Sdan  ALTER TABLE main.t1 RENAME TO t3;
324674b8942Sdan}
325674b8942Sdando_execsql_test 9.6 {
326674b8942Sdan  SELECT sql FROM sqlite_temp_master;
327674b8942Sdan  SELECT sql FROM sqlite_master WHERE type='trigger';
328674b8942Sdan} {
329674b8942Sdan  {CREATE TRIGGER tr AFTER INSERT ON aux.t1 BEGIN SELECT 1, 2, 3; END}
330674b8942Sdan  {CREATE TRIGGER tr AFTER INSERT ON "t3" WHEN new.a IS NULL BEGIN SELECT 1, 2, 3; END}
331674b8942Sdan}
332674b8942Sdan
333674b8942Sdan#-------------------------------------------------------------------------
334674b8942Sdanreset_db
335674b8942Sdanifcapable fts5 {
336674b8942Sdan  do_execsql_test 10.0 {
337674b8942Sdan    PRAGMA legacy_alter_table = 1;
338674b8942Sdan    CREATE VIRTUAL TABLE fff USING fts5(x, y, z);
339674b8942Sdan  }
340674b8942Sdan
341674b8942Sdan  do_execsql_test 10.1 {
342674b8942Sdan    BEGIN;
343674b8942Sdan      INSERT INTO fff VALUES('a', 'b', 'c');
344674b8942Sdan      ALTER TABLE fff RENAME TO ggg;
345674b8942Sdan    COMMIT;
346674b8942Sdan  }
347674b8942Sdan
348674b8942Sdan  do_execsql_test 10.2 {
349674b8942Sdan    SELECT * FROM ggg;
350674b8942Sdan  } {a b c}
351674b8942Sdan}
352674b8942Sdan
353674b8942Sdan#-------------------------------------------------------------------------
354674b8942Sdanreset_db
355674b8942Sdanforcedelete test.db2
356674b8942Sdandb func trigger trigger
357674b8942Sdanset ::trigger [list]
358674b8942Sdanproc trigger {args} {
359674b8942Sdan  lappend ::trigger $args
360674b8942Sdan}
361674b8942Sdando_execsql_test 11.0 {
362674b8942Sdan  PRAGMA legacy_alter_table = 1;
363674b8942Sdan  ATTACH 'test.db2' AS aux;
364674b8942Sdan  CREATE TABLE aux.t1(a, b, c);
365674b8942Sdan  CREATE TABLE main.t1(a, b, c);
366674b8942Sdan  CREATE TEMP TRIGGER tr AFTER INSERT ON aux.t1 BEGIN
367674b8942Sdan    SELECT trigger(new.a, new.b, new.c);
368674b8942Sdan  END;
369674b8942Sdan}
370674b8942Sdan
371674b8942Sdando_execsql_test 11.1 {
372674b8942Sdan  INSERT INTO main.t1 VALUES(1, 2, 3);
373674b8942Sdan  INSERT INTO aux.t1 VALUES(4, 5, 6);
374674b8942Sdan}
375674b8942Sdando_test 11.2 { set ::trigger } {{4 5 6}}
376674b8942Sdan
377674b8942Sdando_execsql_test 11.3 {
378674b8942Sdan  SELECT name, tbl_name FROM sqlite_temp_master;
379674b8942Sdan} {tr t1}
380674b8942Sdan
381674b8942Sdando_execsql_test 11.4 {
382674b8942Sdan  ALTER TABLE main.t1 RENAME TO t2;
383674b8942Sdan  SELECT name, tbl_name FROM sqlite_temp_master;
384674b8942Sdan} {tr t1}
385674b8942Sdan
386674b8942Sdando_execsql_test 11.5 {
387674b8942Sdan  ALTER TABLE aux.t1 RENAME TO t2;
388674b8942Sdan  SELECT name, tbl_name FROM sqlite_temp_master;
389674b8942Sdan} {tr t2}
390674b8942Sdan
391674b8942Sdando_execsql_test 11.6 {
392674b8942Sdan  INSERT INTO aux.t2 VALUES(7, 8, 9);
393674b8942Sdan}
394674b8942Sdando_test 11.7 { set ::trigger } {{4 5 6} {7 8 9}}
395674b8942Sdan
396674b8942Sdan#-------------------------------------------------------------------------
397674b8942Sdanreset_db
398674b8942Sdando_execsql_test 12.0 {
399674b8942Sdan  PRAGMA legacy_alter_table = 1;
400674b8942Sdan  CREATE TABLE t1(a);
401674b8942Sdan  CREATE TABLE t2(w);
402674b8942Sdan  CREATE TRIGGER temp.r1 AFTER INSERT ON main.t2 BEGIN
403674b8942Sdan    INSERT INTO t1(a) VALUES(new.w);
404674b8942Sdan  END;
405674b8942Sdan  CREATE TEMP TABLE t2(x);
406674b8942Sdan}
407674b8942Sdan
408674b8942Sdando_execsql_test 12.1 {
409674b8942Sdan  ALTER TABLE main.t2 RENAME TO t3;
410674b8942Sdan}
411674b8942Sdan
412674b8942Sdando_execsql_test 12.2 {
413674b8942Sdan  INSERT INTO t3 VALUES('WWW');
414674b8942Sdan  SELECT * FROM t1;
415674b8942Sdan} {WWW}
416674b8942Sdan
417674b8942Sdan
418674b8942Sdan#-------------------------------------------------------------------------
419674b8942Sdanreset_db
420674b8942Sdan
421674b8942Sdanifcapable rtree {
422674b8942Sdan  do_execsql_test 14.0 {
423674b8942Sdan    PRAGMA legacy_alter_table = 1;
424674b8942Sdan    CREATE VIRTUAL TABLE rt USING rtree(id, minx, maxx, miny, maxy);
425674b8942Sdan
426674b8942Sdan    CREATE TABLE "mytable" ( "fid" INTEGER PRIMARY KEY, "geom" BLOB);
427674b8942Sdan
428674b8942Sdan    CREATE TRIGGER tr1 AFTER UPDATE OF "geom" ON "mytable"
429674b8942Sdan          WHEN OLD."fid" = NEW."fid" AND NEW."geom" IS NULL BEGIN
430674b8942Sdan      DELETE FROM rt WHERE id = OLD."fid";
431674b8942Sdan    END;
432674b8942Sdan
433674b8942Sdan    INSERT INTO mytable VALUES(1, X'abcd');
434674b8942Sdan  }
435674b8942Sdan
436674b8942Sdan  do_execsql_test 14.1 {
437674b8942Sdan    UPDATE mytable SET geom = X'1234'
438674b8942Sdan  }
439674b8942Sdan
440674b8942Sdan  do_execsql_test 14.2 {
441674b8942Sdan    ALTER TABLE mytable RENAME TO mytable_renamed;
442674b8942Sdan  }
443674b8942Sdan
444674b8942Sdan  do_execsql_test 14.3 {
445674b8942Sdan    CREATE TRIGGER tr2 AFTER INSERT ON mytable_renamed BEGIN
446674b8942Sdan      DELETE FROM rt WHERE id=(SELECT min(id) FROM rt);
447674b8942Sdan    END;
448674b8942Sdan  }
449674b8942Sdan
450674b8942Sdan  do_execsql_test 14.4 {
451674b8942Sdan    ALTER TABLE mytable_renamed RENAME TO mytable2;
452674b8942Sdan  }
453674b8942Sdan}
454674b8942Sdan
455674b8942Sdanreset_db
456674b8942Sdando_execsql_test 14.5 {
457674b8942Sdan  PRAGMA legacy_alter_table = 1;
458674b8942Sdan  CREATE TABLE t1(a, b, c);
459674b8942Sdan  CREATE VIEW v1 AS SELECT * FROM t1;
460674b8942Sdan  CREATE TRIGGER xyz AFTER INSERT ON t1 BEGIN
461674b8942Sdan    SELECT a, b FROM v1;
462674b8942Sdan  END;
463674b8942Sdan}
464674b8942Sdando_execsql_test 14.6 {
465674b8942Sdan  ALTER TABLE t1 RENAME TO tt1;
466674b8942Sdan}
467674b8942Sdan
468674b8942Sdan
469674b8942Sdanfinish_test
470