Files
email-tracker/external/duckdb/test/sql/attach/attach_table_ddl.test
2025-10-24 19:21:19 -05:00

109 lines
1.6 KiB
SQL

# name: test/sql/attach/attach_table_ddl.test
# description: Test various DDL statements on an attached database
# group: [attach]
statement ok
PRAGMA enable_verification
statement ok
ATTACH DATABASE ':memory:' AS new_database;
statement ok
CREATE SCHEMA new_database.s1;
foreach prefix new_database.s1 new_database
statement ok
CREATE TABLE ${prefix}.integers(i INTEGER)
# insert
statement ok
INSERT INTO ${prefix}.integers VALUES (42);
query I
SELECT * FROM ${prefix}.integers
----
42
# update
query I
UPDATE ${prefix}.integers SET i=i+1
----
1
query I
SELECT * FROM ${prefix}.integers
----
43
# delete
query I
DELETE FROM ${prefix}.integers WHERE i=43
----
1
query I
SELECT COUNT(*) FROM ${prefix}.integers
----
0
# alter table statements
# add column
statement ok
ALTER TABLE ${prefix}.integers ADD COLUMN j VARCHAR
statement ok
INSERT INTO ${prefix}.integers VALUES (1, 'T100');
query II
SELECT * FROM ${prefix}.integers
----
1 T100
# alter type
statement ok
ALTER TABLE ${prefix}.integers ALTER j TYPE INT USING REPLACE(j, 'T', '')::INT
query II
SELECT * FROM ${prefix}.integers
----
1 100
# drop column
statement ok
ALTER TABLE ${prefix}.integers DROP COLUMN j
query I
SELECT * FROM ${prefix}.integers
----
1
# rename column
statement ok
ALTER TABLE ${prefix}.integers RENAME COLUMN i TO k
query I
SELECT k FROM ${prefix}.integers
----
1
# drop table
statement ok
DROP TABLE ${prefix}.integers
# rename table
statement ok
CREATE TABLE ${prefix}.t1(i INTEGER)
statement ok
ALTER TABLE ${prefix}.t1 RENAME TO t2
statement ok
SELECT * FROM ${prefix}.t2
statement ok
DROP TABLE ${prefix}.t2
endloop