#!/usr/bin/env tclsh set testdir [file dirname $argv0] source $testdir/tester.tcl do_execsql_test_on_specific_db {:memory:} alter-table-rename-table { CREATE TABLE t1(x INTEGER PRIMARY KEY); ALTER TABLE t1 RENAME TO t2; SELECT tbl_name FROM sqlite_schema; } { "t2" } do_execsql_test_on_specific_db {:memory:} alter-table-rename-column { CREATE TABLE t(a); ALTER TABLE t RENAME a TO b; SELECT sql FROM sqlite_schema; } { "CREATE TABLE t(b)" } do_execsql_test_on_specific_db {:memory:} alter-table-add-column { CREATE TABLE t(a); INSERT INTO t VALUES (1); SELECT * FROM t; ALTER TABLE t ADD b; SELECT sql FROM sqlite_schema; SELECT * FROM t; } { "1" "CREATE TABLE t(a, b)" "1|" } do_execsql_test_on_specific_db {:memory:} alter-table-drop-column { CREATE TABLE t(a, b); INSERT INTO t VALUES (1, 2); SELECT * FROM t; ALTER TABLE t DROP b; SELECT sql FROM sqlite_schema; SELECT * FROM t; } { "1|2" "CREATE TABLE t(a)" "1" } do_execsql_test_in_memory_any_error fail-alter-table-drop-unique-column { CREATE TABLE t(a, b UNIQUE); ALTER TABLE t DROP b; } do_execsql_test_in_memory_any_error fail-alter-table-drop-unique-column-constraint { CREATE TABLE t(a, b, UNIQUE (b)); ALTER TABLE t DROP b; } do_execsql_test_in_memory_any_error fail-alter-table-drop-primary-key-column { CREATE TABLE t(a PRIMARY KEY, b); ALTER TABLE t DROP a; } do_execsql_test_in_memory_any_error fail-alter-table-drop-primary-key-column-constrait { CREATE TABLE t(a, b, PRIMARY KEY (a)); ALTER TABLE t DROP a; }