| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | set testdir [file dirname $argv0] |
| | source $testdir/tester.tcl |
| | set testprefix alterdropcol2 |
| |
|
| | |
| | ifcapable !altertable { |
| | finish_test |
| | return |
| | } |
| |
|
| | |
| | |
| | do_execsql_test 1.0 { |
| | CREATE TABLE t1(c, b, a, PRIMARY KEY(b, a)) WITHOUT ROWID; |
| | INSERT INTO t1 VALUES(1, 2, 3), (4, 5, 6); |
| | } |
| | do_execsql_test 1.1 { |
| | ALTER TABLE t1 DROP c; |
| | } |
| |
|
| | |
| | |
| | |
| | do_execsql_test 1.2.1 { |
| | SELECT * FROM t1; |
| | } {2 3 5 6} |
| |
|
| | do_execsql_test 1.2.2 { |
| | SELECT sql FROM sqlite_schema; |
| | } { |
| | {CREATE TABLE t1(b, a, PRIMARY KEY(b, a)) WITHOUT ROWID} |
| | } |
| |
|
| | proc do_atdc_error_test {tn schema atdc error} { |
| | reset_db |
| | execsql $schema |
| | uplevel [list do_catchsql_test $tn $atdc [list 1 [string trim $error]]] |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | do_atdc_error_test 2.1.1 { |
| | CREATE TABLE x1(a PRIMARY KEY, b, c); |
| | } { |
| | ALTER TABLE x1 DROP COLUMN a |
| | } { |
| | cannot drop PRIMARY KEY column: "a" |
| | } |
| | do_atdc_error_test 2.1.2 { |
| | CREATE TABLE x1(a,b,c,d,e, PRIMARY KEY(b,c,d)); |
| | } { |
| | ALTER TABLE x1 DROP COLUMN c |
| | } { |
| | cannot drop PRIMARY KEY column: "c" |
| | } |
| |
|
| | |
| | |
| | do_atdc_error_test 2.2.1 { |
| | CREATE TABLE x1(a PRIMARY KEY, b, c UNIQUE); |
| | } { |
| | ALTER TABLE x1 DROP COLUMN c |
| | } { |
| | cannot drop UNIQUE column: "c" |
| | } |
| | do_atdc_error_test 2.2.2 { |
| | CREATE TABLE x1(a PRIMARY KEY, b, c, UNIQUE(b, c)); |
| | } { |
| | ALTER TABLE x1 DROP COLUMN c |
| | } { |
| | error in table x1 after drop column: no such column: c |
| | } |
| |
|
| | |
| | |
| | do_atdc_error_test 2.3.1 { |
| | CREATE TABLE 'one two'('x y', 'z 1', 'a b'); |
| | CREATE INDEX idx ON 'one two'('z 1'); |
| | } { |
| | ALTER TABLE 'one two' DROP COLUMN 'z 1' |
| | } { |
| | error in index idx after drop column: no such column: z 1 |
| | } |
| | do_atdc_error_test 2.3.2 { |
| | CREATE TABLE x1(a, b, c); |
| | CREATE INDEX idx ON x1(a); |
| | } { |
| | ALTER TABLE x1 DROP COLUMN a; |
| | } { |
| | error in index idx after drop column: no such column: a |
| | } |
| |
|
| | |
| | |
| | do_atdc_error_test 2.4.1 { |
| | CREATE TABLE x1234(a, b, c PRIMARY KEY) WITHOUT ROWID; |
| | CREATE INDEX i1 ON x1234(b) WHERE ((a+5) % 10)==0; |
| | } { |
| | ALTER TABLE x1234 DROP a |
| | } { |
| | error in index i1 after drop column: no such column: a |
| | } |
| |
|
| | |
| | |
| | |
| | do_atdc_error_test 2.5.1 { |
| | CREATE TABLE x1234(a, b, c PRIMARY KEY, CHECK(((a+5)%10)!=0)) WITHOUT ROWID; |
| | } { |
| | ALTER TABLE x1234 DROP a |
| | } { |
| | error in table x1234 after drop column: no such column: a |
| | } |
| |
|
| | |
| | |
| | do_atdc_error_test 2.6.1 { |
| | CREATE TABLE p1(x, y UNIQUE); |
| | CREATE TABLE c1(u, v, FOREIGN KEY (v) REFERENCES p1(y)) |
| | } { |
| | ALTER TABLE c1 DROP v |
| | } { |
| | error in table c1 after drop column: unknown column "v" in foreign key definition |
| | } |
| |
|
| | |
| | |
| | do_atdc_error_test 2.7.1 { |
| | CREATE TABLE c1(u, v, w AS (u+v)); |
| | } { |
| | ALTER TABLE c1 DROP v |
| | } { |
| | error in table c1 after drop column: no such column: v |
| | } |
| | do_atdc_error_test 2.7.2 { |
| | CREATE TABLE c1(u, v, w AS (u+v) STORED); |
| | } { |
| | ALTER TABLE c1 DROP u |
| | } { |
| | error in table c1 after drop column: no such column: u |
| | } |
| |
|
| | |
| | |
| | do_atdc_error_test 2.8.1 { |
| | CREATE TABLE log(l); |
| | CREATE TABLE c1(u, v, w); |
| | CREATE TRIGGER tr1 AFTER INSERT ON c1 BEGIN |
| | INSERT INTO log VALUES(new.w); |
| | END; |
| | } { |
| | ALTER TABLE c1 DROP w |
| | } { |
| | error in trigger tr1 after drop column: no such column: new.w |
| | } |
| | do_atdc_error_test 2.8.2 { |
| | CREATE TABLE c1(u, v, w); |
| | CREATE VIEW v1 AS SELECT u, v, w FROM c1; |
| | } { |
| | ALTER TABLE c1 DROP w |
| | } { |
| | error in view v1 after drop column: no such column: w |
| | } |
| | do_atdc_error_test 2.8.3 { |
| | CREATE TABLE c1(u, v, w); |
| | CREATE VIEW v1 AS SELECT * FROM c1 WHERE w IS NOT NULL; |
| | } { |
| | ALTER TABLE c1 DROP w |
| | } { |
| | error in view v1 after drop column: no such column: w |
| | } |
| |
|
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | do_execsql_test 3.0 { |
| | CREATE TABLE yyy(q, w, e CHECK (e > 0), r); |
| | INSERT INTO yyy VALUES(1,1,1,1), (2,2,2,2); |
| |
|
| | CREATE TABLE zzz(q, w, e, r, CHECK (e > 0)); |
| | INSERT INTO zzz VALUES(1,1,1,1), (2,2,2,2); |
| | } |
| | do_catchsql_test 3.1.1 { |
| | INSERT INTO yyy VALUES(0,0,0,0); |
| | } {1 {CHECK constraint failed: e > 0}} |
| | do_catchsql_test 3.1.2 { |
| | INSERT INTO yyy VALUES(0,0,0,0); |
| | } {1 {CHECK constraint failed: e > 0}} |
| |
|
| | do_execsql_test 3.2.1 { |
| | ALTER TABLE yyy DROP e; |
| | } |
| | do_catchsql_test 3.2.2 { |
| | ALTER TABLE zzz DROP e; |
| | } {1 {error in table zzz after drop column: no such column: e}} |
| |
|
| | finish_test |
| |
|