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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
# name: test/sql/catalog/test_temporary.test
# description: Test temporary catalog entry creation
# group: [catalog]
# basic temp table creation works
statement ok
CREATE TEMPORARY TABLE integers(i INTEGER) ON COMMIT PRESERVE ROWS
# we can (but never are required to) prefix temp tables with "temp" schema
statement ok
CREATE TEMPORARY TABLE integersx(i INTEGER)
# we don't support temporary schemas (yet?)
#statement error
#CREATE TEMPORARY SCHEMA asdf
# we can prefix temp tables with a schema that is not "temp"
statement ok
CREATE TEMPORARY TABLE main.integersy(i INTEGER)
statement ok
CREATE TEMPORARY TABLE s1 AS SELECT 42
query I
SELECT * FROM temp.s1
----
42
query I
SELECT * FROM s1
----
42
statement error
CREATE TABLE temp.integersy(i INTEGER)
----
<REGEX>:.*Parser Error.*Only TEMPORARY.*
statement ok
CREATE SCHEMA temp
statement error
CREATE TABLE temp.integersy(i INTEGER)
----
<REGEX>:.*Binder Error.*Ambiguous reference.*
statement ok
CREATE TABLE memory.temp.integersy(i INTEGER)
statement ok
DROP SCHEMA temp CASCADE
statement error
DROP TABLE memory.main.integersx
----
<REGEX>:.*Catalog Error.*does not exist.*
statement ok
DROP TABLE integersx
statement ok
CREATE TEMPORARY TABLE temp.integersx(i INTEGER)
statement ok
DROP TABLE temp.integersx
# unsupported
statement error
CREATE TEMPORARY TABLE integers2(i INTEGER) ON COMMIT DELETE ROWS
----
<REGEX>:.*Not implemented Error: Only ON COMMIT.*
# temp table already exists
statement error
CREATE TEMPORARY TABLE integers(i INTEGER)
----
<REGEX>:.*Catalog Error.*already exists.*
statement ok
INSERT INTO integers VALUES (42)
query I
SELECT i from integers
----
42
# temp table survives commit
statement ok
BEGIN TRANSACTION
statement ok
CREATE TEMPORARY TABLE integers2(i INTEGER)
statement ok
CREATE TEMPORARY SEQUENCE seq
statement ok
CREATE TEMPORARY VIEW v1 AS SELECT 42
statement ok
INSERT INTO integers2 VALUES (42)
query I
SELECT i from integers2
----
42
query I
SELECT nextval('seq')
----
1
query I
SELECT * from v1
----
42
statement ok
COMMIT
query I
SELECT i from integers2
----
42
query I
SELECT nextval('seq')
----
2
query I
SELECT * from v1
----
42
# temp table does not survive rollback
statement ok
BEGIN TRANSACTION
statement ok
CREATE TEMPORARY TABLE integers3(i INTEGER)
statement ok
INSERT INTO integers3 VALUES (42)
query I
SELECT i from integers3
----
42
statement ok
ROLLBACK
statement error
SELECT i from integers3
----
<REGEX>:.*Catalog Error.*does not exist.*
# table is not visible to other cons
statement error con2
INSERT INTO integers VALUES (42)
----
<REGEX>:.*Catalog Error.*does not exist.*
|