1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
# name: test/sql/catalog/test_catalog_errors.test
# description: Test various errors in catalog management
# group: [catalog]
statement ok
CREATE TABLE integers(i INTEGER);
statement ok
CREATE VIEW vintegers AS SELECT 42;
# cannot CREATE OR REPLACE a table with a view
statement error
CREATE OR REPLACE VIEW integers AS SELECT 42;
----
<REGEX>:.*Catalog Error: Existing object integers.*
# cannot use DROP VIEW to drop a table
statement error
DROP VIEW integers
----
<REGEX>:.*Catalog Error: Existing object integers.*
# cannot drop a table that does not exist
statement error
DROP TABLE blabla
----
<REGEX>:.*Catalog Error.*does not exist.*
# cannot alter a table that does not exist
statement error
ALTER TABLE blabla RENAME COLUMN i TO k
----
<REGEX>:.*Catalog Error.*does not exist.*
# cannot drop view with DROP TABLE
statement error
DROP TABLE IF EXISTS vintegers
----
<REGEX>:.*Catalog Error: Existing object vintegers.*
statement ok
CREATE INDEX i_index ON integers(i);
# cannot create an index that already exists
statement error
CREATE INDEX i_index ON integers(i);
----
<REGEX>:.*Catalog Error.*already exists.*
# with IF NOT EXISTS it does not fail!
statement ok
CREATE INDEX IF NOT EXISTS i_index ON integers(i);
# drop the index
statement ok
DROP INDEX i_index
# cannot drop the index again: it no longer exists
statement error
DROP INDEX i_index
----
<REGEX>:.*Catalog Error.*does not exist.*
# IF NOT EXISTS does not report the failure
statement ok
DROP INDEX IF EXISTS i_index
# create the index again, but as unique to exercise special handling due to indexes generated column constraints
statement ok
CREATE UNIQUE INDEX i_index ON integers(i);
# cannot create an index that already exists
statement error
CREATE UNIQUE INDEX i_index ON integers(i);
----
<REGEX>:.*Catalog Error.*already exists.*
# with IF NOT EXISTS it does not fail!
statement ok
CREATE UNIQUE INDEX IF NOT EXISTS i_index ON integers(i);
# dropping the table also drops the index
statement ok
DROP TABLE integers;
statement error
DROP INDEX i_index
----
<REGEX>:.*Catalog Error.*does not exist.*
|