File: test_temporary.test

package info (click to toggle)
duckdb 1.5.1-2
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 299,196 kB
  • sloc: cpp: 865,414; ansic: 57,292; python: 18,871; sql: 12,663; lisp: 11,751; yacc: 7,412; lex: 1,682; sh: 747; makefile: 558
file content (163 lines) | stat: -rw-r--r-- 2,634 bytes parent folder | download | duplicates (3)
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.*