1
- # LogicTest: !local-schema-locked
2
-
3
1
# Note: this file does not contain tests for virtual computed columns; those
4
2
# are in a separate test file.
5
3
@@ -11,6 +9,7 @@ CREATE TABLE with_no_column_refs (
11
9
FAMILY "primary" (a, b, c, rowid)
12
10
)
13
11
12
+ skipif config local-schema-locked
14
13
query TT
15
14
SHOW CREATE TABLE with_no_column_refs
16
15
----
@@ -22,6 +21,19 @@ with_no_column_refs CREATE TABLE public.with_no_column_refs (
22
21
CONSTRAINT with_no_column_refs_pkey PRIMARY KEY (rowid ASC)
23
22
);
24
23
24
+ onlyif config local-schema-locked
25
+ query TT
26
+ SHOW CREATE TABLE with_no_column_refs
27
+ ----
28
+ with_no_column_refs CREATE TABLE public.with_no_column_refs (
29
+ a INT8 NULL,
30
+ b INT8 NULL,
31
+ c INT8 NULL AS (3:::INT8) STORED,
32
+ rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
33
+ CONSTRAINT with_no_column_refs_pkey PRIMARY KEY (rowid ASC)
34
+ ) WITH (schema_locked = true);
35
+
36
+ skipif config local-schema-locked
25
37
query TT
26
38
SHOW CREATE TABLE with_no_column_refs WITH REDACT
27
39
----
@@ -33,6 +45,18 @@ with_no_column_refs CREATE TABLE public.with_no_column_refs (
33
45
CONSTRAINT with_no_column_refs_pkey PRIMARY KEY (rowid ASC)
34
46
);
35
47
48
+ onlyif config local-schema-locked
49
+ query TT
50
+ SHOW CREATE TABLE with_no_column_refs WITH REDACT
51
+ ----
52
+ with_no_column_refs CREATE TABLE public.with_no_column_refs (
53
+ a INT8 NULL,
54
+ b INT8 NULL,
55
+ c INT8 NULL AS (‹×›:::INT8) STORED,
56
+ rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
57
+ CONSTRAINT with_no_column_refs_pkey PRIMARY KEY (rowid ASC)
58
+ ) WITH (schema_locked = true);
59
+
36
60
statement ok
37
61
CREATE TABLE extra_parens (
38
62
a INT,
@@ -41,6 +65,7 @@ CREATE TABLE extra_parens (
41
65
FAMILY "primary" (a, b, c, rowid)
42
66
)
43
67
68
+ skipif config local-schema-locked
44
69
query TT
45
70
SHOW CREATE TABLE extra_parens
46
71
----
@@ -52,6 +77,17 @@ extra_parens CREATE TABLE public.extra_parens (
52
77
CONSTRAINT extra_parens_pkey PRIMARY KEY (rowid ASC)
53
78
);
54
79
80
+ onlyif config local-schema-locked
81
+ query TT
82
+ SHOW CREATE TABLE extra_parens
83
+ ----
84
+ extra_parens CREATE TABLE public.extra_parens (
85
+ a INT8 NULL,
86
+ b INT8 NULL,
87
+ c INT8 NULL AS (3:::INT8) STORED,
88
+ rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
89
+ CONSTRAINT extra_parens_pkey PRIMARY KEY (rowid ASC)
90
+ ) WITH (schema_locked = true);
55
91
56
92
statement error cannot write directly to computed column "c"
57
93
INSERT INTO with_no_column_refs VALUES (1, 2, 3)
@@ -95,6 +131,7 @@ CREATE TABLE x (
95
131
FAMILY "primary" (a, b, c, d, rowid)
96
132
)
97
133
134
+ skipif config local-schema-locked
98
135
query TT
99
136
SHOW CREATE TABLE x
100
137
----
@@ -107,6 +144,19 @@ x CREATE TABLE public.x (
107
144
CONSTRAINT x_pkey PRIMARY KEY (rowid ASC)
108
145
);
109
146
147
+ onlyif config local-schema-locked
148
+ query TT
149
+ SHOW CREATE TABLE x
150
+ ----
151
+ x CREATE TABLE public.x (
152
+ a INT8 NULL DEFAULT 3:::INT8,
153
+ b INT8 NULL DEFAULT 7:::INT8,
154
+ c INT8 NULL AS (a) STORED,
155
+ d INT8 NULL AS (a + b) STORED,
156
+ rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
157
+ CONSTRAINT x_pkey PRIMARY KEY (rowid ASC)
158
+ ) WITH (schema_locked = true);
159
+
110
160
query TTBTTTB colnames
111
161
SELECT * FROM [SHOW COLUMNS FROM x] ORDER BY column_name
112
162
----
@@ -791,6 +841,7 @@ CREATE TABLE x (
791
841
FAMILY "primary" (a, b, rowid)
792
842
)
793
843
844
+ skipif config local-schema-locked
794
845
query TT
795
846
SHOW CREATE TABLE x
796
847
----
@@ -801,6 +852,17 @@ x CREATE TABLE public.x (
801
852
CONSTRAINT x_pkey PRIMARY KEY (rowid ASC)
802
853
);
803
854
855
+ onlyif config local-schema-locked
856
+ query TT
857
+ SHOW CREATE TABLE x
858
+ ----
859
+ x CREATE TABLE public.x (
860
+ a INT8 NULL,
861
+ b INT8 NULL AS (a) STORED,
862
+ rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
863
+ CONSTRAINT x_pkey PRIMARY KEY (rowid ASC)
864
+ ) WITH (schema_locked = true);
865
+
804
866
statement ok
805
867
DROP TABLE x
806
868
@@ -815,6 +877,7 @@ CREATE TABLE x (
815
877
statement ok
816
878
ALTER TABLE x RENAME COLUMN a TO c
817
879
880
+ skipif config local-schema-locked
818
881
query TT
819
882
SHOW CREATE TABLE x
820
883
----
@@ -825,6 +888,17 @@ x CREATE TABLE public.x (
825
888
CONSTRAINT x_pkey PRIMARY KEY (rowid ASC)
826
889
);
827
890
891
+ onlyif config local-schema-locked
892
+ query TT
893
+ SHOW CREATE TABLE x
894
+ ----
895
+ x CREATE TABLE public.x (
896
+ c INT8 NULL,
897
+ b INT8 NULL AS (c) STORED,
898
+ rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
899
+ CONSTRAINT x_pkey PRIMARY KEY (rowid ASC)
900
+ ) WITH (schema_locked = true);
901
+
828
902
statement ok
829
903
DROP TABLE x
830
904
@@ -855,6 +929,7 @@ INSERT INTO x VALUES (3)
855
929
statement ok
856
930
ALTER TABLE x ADD COLUMN c INT NOT NULL AS (a + 4) STORED
857
931
932
+ skipif config local-schema-locked
858
933
query TT
859
934
SHOW CREATE TABLE x
860
935
----
@@ -866,6 +941,19 @@ x CREATE TABLE public.x (
866
941
CONSTRAINT x_pkey PRIMARY KEY (rowid ASC)
867
942
);
868
943
944
+ onlyif config local-schema-locked
945
+ query TT
946
+ SHOW CREATE TABLE x
947
+ ----
948
+ x CREATE TABLE public.x (
949
+ a INT8 NULL,
950
+ b INT8 NULL AS (a * 2:::INT8) STORED,
951
+ rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
952
+ c INT8 NOT NULL AS (a + 4:::INT8) STORED,
953
+ CONSTRAINT x_pkey PRIMARY KEY (rowid ASC)
954
+ ) WITH (schema_locked = true);
955
+
956
+ skipif config local-schema-locked
869
957
query TT
870
958
SHOW CREATE TABLE x WITH REDACT
871
959
----
@@ -877,6 +965,18 @@ x CREATE TABLE public.x (
877
965
CONSTRAINT x_pkey PRIMARY KEY (rowid ASC)
878
966
);
879
967
968
+ onlyif config local-schema-locked
969
+ query TT
970
+ SHOW CREATE TABLE x WITH REDACT
971
+ ----
972
+ x CREATE TABLE public.x (
973
+ a INT8 NULL,
974
+ b INT8 NULL AS (a * ‹×›:::INT8) STORED,
975
+ rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
976
+ c INT8 NOT NULL AS (a + ‹×›:::INT8) STORED,
977
+ CONSTRAINT x_pkey PRIMARY KEY (rowid ASC)
978
+ ) WITH (schema_locked = true);
979
+
880
980
statement ok
881
981
INSERT INTO x VALUES (6)
882
982
@@ -886,6 +986,10 @@ SELECT * FROM x ORDER BY a
886
986
3 6 7
887
987
6 12 10
888
988
989
+ onlyif config local-schema-locked
990
+ statement ok
991
+ ALTER TABLE x SET (schema_locked=false);
992
+
889
993
# Multiple ADD COLUMNs can only reference columns that are defined previously.
890
994
statement error pq: column "t" does not exist, referenced in "lower\(t\)"
891
995
ALTER TABLE x
@@ -897,6 +1001,10 @@ ALTER TABLE x
897
1001
ADD COLUMN s STRING,
898
1002
ADD COLUMN t STRING AS (lower(s)) STORED
899
1003
1004
+ onlyif config local-schema-locked
1005
+ statement ok
1006
+ ALTER TABLE x SET (schema_locked=true);
1007
+
900
1008
# Verify a bad statement fails.
901
1009
statement error pq: could not parse "a" as type int
902
1010
ALTER TABLE x ADD COLUMN d INT AS (a + 'a') STORED
@@ -1000,6 +1108,7 @@ statement ok
1000
1108
CREATE TABLE t42418 (x INT GENERATED ALWAYS AS (1) STORED);
1001
1109
ALTER TABLE t42418 ADD COLUMN y INT GENERATED ALWAYS AS (1) STORED
1002
1110
1111
+ skipif config local-schema-locked
1003
1112
query TT
1004
1113
SHOW CREATE t42418
1005
1114
----
@@ -1010,6 +1119,17 @@ t42418 CREATE TABLE public.t42418 (
1010
1119
CONSTRAINT t42418_pkey PRIMARY KEY (rowid ASC)
1011
1120
);
1012
1121
1122
+ onlyif config local-schema-locked
1123
+ query TT
1124
+ SHOW CREATE t42418
1125
+ ----
1126
+ t42418 CREATE TABLE public.t42418 (
1127
+ x INT8 NULL AS (1:::INT8) STORED,
1128
+ rowid INT8 NOT VISIBLE NOT NULL DEFAULT unique_rowid(),
1129
+ y INT8 NULL AS (1:::INT8) STORED,
1130
+ CONSTRAINT t42418_pkey PRIMARY KEY (rowid ASC)
1131
+ ) WITH (schema_locked = true);
1132
+
1013
1133
# Tests for computed column rewrites.
1014
1134
statement error timestamptz::string: context-dependent operators are not allowed in STORED COMPUTED COLUMN
1015
1135
CREATE TABLE trewrite(k INT PRIMARY KEY, ts TIMESTAMPTZ, c STRING AS (ts::STRING) STORED, FAMILY (k,ts,c))
@@ -1026,6 +1146,7 @@ SET experimental_computed_column_rewrites = "(ts :: STRING) -> (to_char(ts AT TI
1026
1146
statement ok
1027
1147
CREATE TABLE trewrite(k INT PRIMARY KEY, ts TIMESTAMPTZ, c STRING AS (ts::STRING) STORED, FAMILY (k,ts,c))
1028
1148
1149
+ skipif config local-schema-locked
1029
1150
query T
1030
1151
SELECT create_statement FROM [SHOW CREATE TABLE trewrite]
1031
1152
----
@@ -1037,6 +1158,18 @@ CREATE TABLE public.trewrite (
1037
1158
FAMILY fam_0_k_ts_c (k, ts, c)
1038
1159
);
1039
1160
1161
+ onlyif config local-schema-locked
1162
+ query T
1163
+ SELECT create_statement FROM [SHOW CREATE TABLE trewrite]
1164
+ ----
1165
+ CREATE TABLE public.trewrite (
1166
+ k INT8 NOT NULL,
1167
+ ts TIMESTAMPTZ NULL,
1168
+ c STRING NULL AS (to_char(timezone('utc':::STRING, ts))) STORED,
1169
+ CONSTRAINT trewrite_pkey PRIMARY KEY (k ASC),
1170
+ FAMILY fam_0_k_ts_c (k, ts, c)
1171
+ ) WITH (schema_locked = true);
1172
+
1040
1173
statement ok
1041
1174
DROP TABLE trewrite
1042
1175
@@ -1046,6 +1179,7 @@ CREATE TABLE trewrite(k INT PRIMARY KEY, ts TIMESTAMPTZ, FAMILY (k,ts))
1046
1179
statement ok
1047
1180
ALTER TABLE trewrite ADD COLUMN c STRING AS (ts::STRING) STORED
1048
1181
1182
+ skipif config local-schema-locked
1049
1183
query T
1050
1184
SELECT create_statement FROM [SHOW CREATE TABLE trewrite]
1051
1185
----
@@ -1057,12 +1191,25 @@ CREATE TABLE public.trewrite (
1057
1191
FAMILY fam_0_k_ts (k, ts, c)
1058
1192
);
1059
1193
1194
+ onlyif config local-schema-locked
1195
+ query T
1196
+ SELECT create_statement FROM [SHOW CREATE TABLE trewrite]
1197
+ ----
1198
+ CREATE TABLE public.trewrite (
1199
+ k INT8 NOT NULL,
1200
+ ts TIMESTAMPTZ NULL,
1201
+ c STRING NULL AS (to_char(timezone('utc':::STRING, ts))) STORED,
1202
+ CONSTRAINT trewrite_pkey PRIMARY KEY (k ASC),
1203
+ FAMILY fam_0_k_ts (k, ts, c)
1204
+ ) WITH (schema_locked = true);
1205
+
1060
1206
statement ok
1061
1207
SET experimental_computed_column_rewrites = ""
1062
1208
1063
1209
statement ok
1064
1210
CREATE TABLE trewrite_copy (LIKE trewrite INCLUDING ALL)
1065
1211
1212
+ skipif config local-schema-locked
1066
1213
query T
1067
1214
SELECT create_statement FROM [SHOW CREATE TABLE trewrite_copy]
1068
1215
----
@@ -1073,6 +1220,17 @@ CREATE TABLE public.trewrite_copy (
1073
1220
CONSTRAINT trewrite_pkey PRIMARY KEY (k ASC)
1074
1221
);
1075
1222
1223
+ onlyif config local-schema-locked
1224
+ query T
1225
+ SELECT create_statement FROM [SHOW CREATE TABLE trewrite_copy]
1226
+ ----
1227
+ CREATE TABLE public.trewrite_copy (
1228
+ k INT8 NOT NULL,
1229
+ ts TIMESTAMPTZ NULL,
1230
+ c STRING NULL AS (to_char(timezone('utc':::STRING, ts))) STORED,
1231
+ CONSTRAINT trewrite_pkey PRIMARY KEY (k ASC)
1232
+ ) WITH (schema_locked = true);
1233
+
1076
1234
statement ok
1077
1235
DROP TABLE trewrite
1078
1236
@@ -1099,6 +1257,7 @@ CREATE TABLE trewrite2(
1099
1257
FAMILY (k,ts,b,str,c1,c2,c3)
1100
1258
)
1101
1259
1260
+ skipif config local-schema-locked
1102
1261
query T
1103
1262
SELECT create_statement FROM [SHOW CREATE TABLE trewrite2]
1104
1263
----
@@ -1114,6 +1273,23 @@ CREATE TABLE public.trewrite2 (
1114
1273
FAMILY fam_0_k_ts_b_str_c1_c2_c3 (k, ts, b, str, c1, c2, c3)
1115
1274
);
1116
1275
1276
+
1277
+ onlyif config local-schema-locked
1278
+ query T
1279
+ SELECT create_statement FROM [SHOW CREATE TABLE trewrite2]
1280
+ ----
1281
+ CREATE TABLE public.trewrite2 (
1282
+ k INT8 NOT NULL,
1283
+ ts TIMESTAMPTZ NULL,
1284
+ b BYTES NULL,
1285
+ str STRING NULL,
1286
+ c1 STRING NULL AS (to_char(timezone('utc':::STRING, ts))) STORED,
1287
+ c2 TIMESTAMP NULL AS (parse_timestamp(str)) STORED,
1288
+ c3 INT8 NULL AS (mod(fnv32(b), 4:::INT8)) STORED,
1289
+ CONSTRAINT trewrite2_pkey PRIMARY KEY (k ASC),
1290
+ FAMILY fam_0_k_ts_b_str_c1_c2_c3 (k, ts, b, str, c1, c2, c3)
1291
+ ) WITH (schema_locked = true);
1292
+
1117
1293
statement ok
1118
1294
DROP TABLE trewrite2
1119
1295
0 commit comments