Skip to content

Commit bf9abe7

Browse files
committed
Pretty-print in SHOW CREATE and in SHOW REDACTED CREATE
1 parent 0967e34 commit bf9abe7

File tree

77 files changed

+663
-1427
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+663
-1427
lines changed

Cargo.lock

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

misc/dbt-materialize/tests/adapter/test_constraints.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,7 @@ def test_ddl_enforcement(self, project):
133133
fetch="one",
134134
)
135135
assert (
136-
'ASSERT NOT NULL = "a", ASSERT NOT NULL = "b"'
137-
in nullability_assertions_ddl[1]
136+
"ASSERT NOT NULL = a, ASSERT NOT NULL = b" in nullability_assertions_ddl[1]
138137
)
139138

140139

misc/python/materialize/checks/all_checks/create_table.py

-9
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,6 @@ def validate(self) -> Testdrive:
6060
> SELECT * FROM create_table_view2;
6161
2
6262
63-
> SHOW CREATE TABLE create_table1;
64-
materialize.public.create_table1 "CREATE TABLE \\"materialize\\".\\"public\\".\\"create_table1\\" (\\"f1\\" \\"pg_catalog\\".\\"int4\\", \\"f2\\" \\"pg_catalog\\".\\"int4\\" NOT NULL DEFAULT 1234)"
65-
6663
! INSERT INTO create_table1 (f2) VALUES (NULL);
6764
contains: null value in column
6865
@@ -72,9 +69,6 @@ def validate(self) -> Testdrive:
7269
7370
> DELETE FROM create_table1 WHERE f1 = 999;
7471
75-
> SHOW CREATE TABLE create_table2;
76-
materialize.public.create_table2 "CREATE TABLE \\"materialize\\".\\"public\\".\\"create_table2\\" (\\"f1\\" \\"pg_catalog\\".\\"int4\\", \\"f2\\" \\"pg_catalog\\".\\"int4\\" NOT NULL DEFAULT 1234)"
77-
7872
! INSERT INTO create_table2 (f2) VALUES (NULL);
7973
contains: null value in column
8074
@@ -84,9 +78,6 @@ def validate(self) -> Testdrive:
8478
8579
> DELETE FROM create_table2 WHERE f1 = 999;
8680
87-
> SHOW CREATE TABLE create_table3;
88-
materialize.public.create_table3 "CREATE TABLE \\"materialize\\".\\"public\\".\\"create_table3\\" (\\"f1\\" \\"pg_catalog\\".\\"int4\\", \\"f2\\" \\"pg_catalog\\".\\"int4\\" NOT NULL DEFAULT 1234)"
89-
9081
! INSERT INTO create_table3 (f2) VALUES (NULL);
9182
contains: null value in column
9283

misc/python/materialize/checks/all_checks/debezium.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -149,15 +149,15 @@ def validate(self) -> Testdrive:
149149
F 2 16000
150150
"""
151151
+ (
152-
"""
152+
r"""
153153
$ set-regex match="FORMAT .*? ENVELOPE DEBEZIUM " replacement=""
154154
155155
> SHOW CREATE SOURCE debezium_source1;
156-
materialize.public.debezium_source1 "CREATE SOURCE \\"materialize\\".\\"public\\".\\"debezium_source1\\" IN CLUSTER \\"quickstart\\" FROM KAFKA CONNECTION \\"materialize\\".\\"public\\".\\"kafka_conn\\" (TOPIC = 'postgres.public.debezium_table') EXPOSE PROGRESS AS \\"materialize\\".\\"public\\".\\"debezium_source1_progress\\""
156+
materialize.public.debezium_source1 "CREATE SOURCE materialize.public.debezium_source1\nIN CLUSTER quickstart\nFROM KAFKA CONNECTION materialize.public.kafka_conn (TOPIC = 'postgres.public.debezium_table')\nEXPOSE PROGRESS AS materialize.public.debezium_source1_progress;"
157157
> SHOW CREATE SOURCE debezium_source2;
158-
materialize.public.debezium_source2 "CREATE SOURCE \\"materialize\\".\\"public\\".\\"debezium_source2\\" IN CLUSTER \\"quickstart\\" FROM KAFKA CONNECTION \\"materialize\\".\\"public\\".\\"kafka_conn\\" (TOPIC = 'postgres.public.debezium_table') EXPOSE PROGRESS AS \\"materialize\\".\\"public\\".\\"debezium_source2_progress\\""
158+
materialize.public.debezium_source2 "CREATE SOURCE materialize.public.debezium_source2\nIN CLUSTER quickstart\nFROM KAFKA CONNECTION materialize.public.kafka_conn (TOPIC = 'postgres.public.debezium_table')\nEXPOSE PROGRESS AS materialize.public.debezium_source2_progress;"
159159
> SHOW CREATE SOURCE debezium_source3;
160-
materialize.public.debezium_source3 "CREATE SOURCE \\"materialize\\".\\"public\\".\\"debezium_source3\\" IN CLUSTER \\"quickstart\\" FROM KAFKA CONNECTION \\"materialize\\".\\"public\\".\\"kafka_conn\\" (TOPIC = 'postgres.public.debezium_table') EXPOSE PROGRESS AS \\"materialize\\".\\"public\\".\\"debezium_source3_progress\\""
160+
materialize.public.debezium_source3 "CREATE SOURCE materialize.public.debezium_source3\nIN CLUSTER quickstart\nFROM KAFKA CONNECTION materialize.public.kafka_conn (TOPIC = 'postgres.public.debezium_table')\nEXPOSE PROGRESS AS materialize.public.debezium_source3_progress;"
161161
"""
162162
if not self.is_running_as_cloudtest()
163163
else ""

misc/python/materialize/checks/all_checks/json_source.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ def validate(self) -> Testdrive:
8181
"\\"object\\"" "{\\"a\\":\\"b\\",\\"c\\":\\"d\\"}"
8282
"\\"str\\"" "\\"hello\\""
8383
"""
84-
+ """
84+
+ r"""
8585
> SHOW CREATE SOURCE format_jsonb_src;
86-
materialize.public.format_jsonb_src "CREATE SOURCE \\"materialize\\".\\"public\\".\\"format_jsonb_src\\" IN CLUSTER \\"single_replica_cluster\\" FROM KAFKA CONNECTION \\"materialize\\".\\"public\\".\\"kafka_conn\\" (TOPIC = 'testdrive-format-json-${testdrive.seed}') EXPOSE PROGRESS AS \\"materialize\\".\\"public\\".\\"format_jsonb_src_progress\\""
86+
materialize.public.format_jsonb_src "CREATE SOURCE materialize.public.format_jsonb_src\nIN CLUSTER single_replica_cluster\nFROM KAFKA CONNECTION materialize.public.kafka_conn (TOPIC = 'testdrive-format-json-${testdrive.seed}')\nEXPOSE PROGRESS AS materialize.public.format_jsonb_src_progress;"
8787
"""
8888
)
8989
)

misc/python/materialize/checks/all_checks/kafka_formats.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ def manipulate(self) -> list[Testdrive]:
173173
def validate(self) -> Testdrive:
174174
return Testdrive(
175175
dedent(
176-
"""
176+
r"""
177177
> SELECT COUNT(*) FROM format_bytes1
178178
3
179179
@@ -217,10 +217,10 @@ def validate(self) -> Testdrive:
217217
key2A key2B value2A value2B
218218
key3A key3B value3A value3B
219219
220-
$ set-regex match=testdrive-format-bytes-\\d+ replacement=<TOPIC>
220+
$ set-regex match=testdrive-format-bytes-\d+ replacement=<TOPIC>
221221
222222
> SHOW CREATE SOURCE format_bytes1_src;
223-
materialize.public.format_bytes1_src "CREATE SOURCE \\"materialize\\".\\"public\\".\\"format_bytes1_src\\" IN CLUSTER \\"kafka_formats\\" FROM KAFKA CONNECTION \\"materialize\\".\\"public\\".\\"kafka_conn\\" (TOPIC = '<TOPIC>') EXPOSE PROGRESS AS \\"materialize\\".\\"public\\".\\"format_bytes1_src_progress\\""
223+
materialize.public.format_bytes1_src "CREATE SOURCE materialize.public.format_bytes1_src\nIN CLUSTER kafka_formats\nFROM KAFKA CONNECTION materialize.public.kafka_conn (TOPIC = '<TOPIC>')\nEXPOSE PROGRESS AS materialize.public.format_bytes1_src_progress;"
224224
"""
225225
)
226226
)

misc/python/materialize/checks/all_checks/materialized_views.py

-29
Original file line numberDiff line numberDiff line change
@@ -287,35 +287,6 @@ def validate(self) -> Testdrive:
287287
2
288288
3
289289
290-
$ set-regex match=\\d{13} replacement=<TIMESTAMP>
291-
292-
> SHOW CREATE MATERIALIZED VIEW refresh_view_2s_1
293-
"materialize.public.refresh_view_2s_1" "CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"refresh_view_2s_1\\" IN CLUSTER \\"quickstart\\" WITH (REFRESH = EVERY '2 seconds' ALIGNED TO <TIMESTAMP>::\\"mz_catalog\\".\\"mz_timestamp\\") AS SELECT DISTINCT (\\"x\\") FROM \\"materialize\\".\\"public\\".\\"refresh_table\\""
294-
295-
> SHOW CREATE MATERIALIZED VIEW refresh_view_2s_2
296-
"materialize.public.refresh_view_2s_2" "CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"refresh_view_2s_2\\" IN CLUSTER \\"quickstart\\" WITH (REFRESH = EVERY '2 seconds' ALIGNED TO <TIMESTAMP>::\\"mz_catalog\\".\\"mz_timestamp\\") AS SELECT DISTINCT (\\"x\\") FROM \\"materialize\\".\\"public\\".\\"refresh_table\\""
297-
298-
> SHOW CREATE MATERIALIZED VIEW refresh_view_2s_3
299-
"materialize.public.refresh_view_2s_3" "CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"refresh_view_2s_3\\" IN CLUSTER \\"quickstart\\" WITH (REFRESH = EVERY '2 seconds' ALIGNED TO <TIMESTAMP>::\\"mz_catalog\\".\\"mz_timestamp\\") AS SELECT DISTINCT (\\"x\\") FROM \\"materialize\\".\\"public\\".\\"refresh_table\\""
300-
301-
> SHOW CREATE MATERIALIZED VIEW refresh_view_at_1
302-
"materialize.public.refresh_view_at_1" "CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"refresh_view_at_1\\" IN CLUSTER \\"quickstart\\" WITH (REFRESH = AT <TIMESTAMP>::\\"mz_catalog\\".\\"mz_timestamp\\"::\\"pg_catalog\\".\\"text\\"::\\"pg_catalog\\".\\"int8\\") AS SELECT DISTINCT (\\"x\\") FROM \\"materialize\\".\\"public\\".\\"refresh_table\\""
303-
304-
> SHOW CREATE MATERIALIZED VIEW refresh_view_at_2
305-
"materialize.public.refresh_view_at_2" "CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"refresh_view_at_2\\" IN CLUSTER \\"quickstart\\" WITH (REFRESH = AT <TIMESTAMP>::\\"mz_catalog\\".\\"mz_timestamp\\"::\\"pg_catalog\\".\\"text\\"::\\"pg_catalog\\".\\"int8\\") AS SELECT DISTINCT (\\"x\\") FROM \\"materialize\\".\\"public\\".\\"refresh_table\\""
306-
307-
> SHOW CREATE MATERIALIZED VIEW refresh_view_at_3
308-
"materialize.public.refresh_view_at_3" "CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"refresh_view_at_3\\" IN CLUSTER \\"quickstart\\" WITH (REFRESH = AT <TIMESTAMP>::\\"mz_catalog\\".\\"mz_timestamp\\"::\\"pg_catalog\\".\\"text\\"::\\"pg_catalog\\".\\"int8\\") AS SELECT DISTINCT (\\"x\\") FROM \\"materialize\\".\\"public\\".\\"refresh_table\\""
309-
310-
> SHOW CREATE MATERIALIZED VIEW refresh_view_late_1
311-
"materialize.public.refresh_view_late_1" "CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"refresh_view_late_1\\" IN CLUSTER \\"quickstart\\" WITH (REFRESH = AT <TIMESTAMP>::\\"mz_catalog\\".\\"mz_timestamp\\"::\\"pg_catalog\\".\\"text\\"::\\"pg_catalog\\".\\"int8\\" + 86400000) AS SELECT DISTINCT (\\"x\\") FROM \\"materialize\\".\\"public\\".\\"refresh_table\\""
312-
313-
> SHOW CREATE MATERIALIZED VIEW refresh_view_late_2
314-
"materialize.public.refresh_view_late_2" "CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"refresh_view_late_2\\" IN CLUSTER \\"quickstart\\" WITH (REFRESH = AT <TIMESTAMP>::\\"mz_catalog\\".\\"mz_timestamp\\"::\\"pg_catalog\\".\\"text\\"::\\"pg_catalog\\".\\"int8\\" + 86400000) AS SELECT DISTINCT (\\"x\\") FROM \\"materialize\\".\\"public\\".\\"refresh_table\\""
315-
316-
> SHOW CREATE MATERIALIZED VIEW refresh_view_late_3
317-
"materialize.public.refresh_view_late_3" "CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"refresh_view_late_3\\" IN CLUSTER \\"quickstart\\" WITH (REFRESH = AT <TIMESTAMP>::\\"mz_catalog\\".\\"mz_timestamp\\"::\\"pg_catalog\\".\\"text\\"::\\"pg_catalog\\".\\"int8\\" + 86400000) AS SELECT DISTINCT (\\"x\\") FROM \\"materialize\\".\\"public\\".\\"refresh_table\\""
318-
319290
$ set-regex match=(s\\d+|\\d{13}|[ ]{12}0|u\\d{1,3}|\\(\\d+-\\d\\d-\\d\\d\\s\\d\\d:\\d\\d:\\d\\d\\.\\d\\d\\d\\)|\\(\\d+\\)) replacement=<>
320291
321292
> EXPLAIN TIMESTAMP FOR SELECT * FROM refresh_view_late_1

misc/python/materialize/checks/all_checks/mysql_cdc.py

+1
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ def validate(self) -> Testdrive:
214214
H 200 {self.expects}
215215
216216
# TODO: Figure out the quoting here -- it returns "f4" when done using the SQL shell
217+
# (Might have changed again with https://github.com/MaterializeInc/materialize/pull/31933)
217218
# > SELECT regexp_match(create_sql, 'TEXT COLUMNS = \\((.*?)\\)')[1] FROM (SHOW CREATE SOURCE mysql_source_tableA{self.suffix});
218219
# "\"f4\""
219220

misc/python/materialize/checks/all_checks/null_value.py

+1-9
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,7 @@ def manipulate(self) -> list[Testdrive]:
5151
def validate(self) -> Testdrive:
5252
return Testdrive(
5353
dedent(
54-
f"""
55-
> SHOW CREATE VIEW null_value_view1;
56-
materialize.public.null_value_view1 "CREATE VIEW \\"materialize\\".\\"public\\".\\"null_value_view1\\" AS SELECT \\"f1\\", \\"f2\\", NULL FROM \\"materialize\\".\\"public\\".\\"null_value_table\\" WHERE \\"f1\\" IS NULL OR \\"f1\\" IS NOT NULL OR \\"f1\\" = NULL"
57-
54+
"""
5855
> SELECT * FROM null_value_view1;
5956
<null> <null> <null>
6057
<null> <null> <null>
@@ -69,9 +66,6 @@ def validate(self) -> Testdrive:
6966
<null> <null> <null>
7067
<null> <null> <null>
7168
72-
> SHOW CREATE MATERIALIZED VIEW null_value_view2;
73-
materialize.public.null_value_view2 "CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"null_value_view2\\" IN CLUSTER \\"{self._default_cluster()}\\" WITH (REFRESH = ON COMMIT) AS SELECT \\"f1\\", \\"f2\\", NULL FROM \\"materialize\\".\\"public\\".\\"null_value_table\\" WHERE \\"f1\\" IS NULL OR \\"f1\\" IS NOT NULL OR \\"f1\\" = NULL"
74-
7569
> SELECT * FROM null_value_view2;
7670
<null> <null> <null>
7771
<null> <null> <null>
@@ -85,8 +79,6 @@ def validate(self) -> Testdrive:
8579
<null> <null> <null>
8680
<null> <null> <null>
8781
<null> <null> <null>
88-
89-
9082
"""
9183
)
9284
)

misc/python/materialize/checks/all_checks/rename_view.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ def manipulate(self) -> list[Testdrive]:
4747
def validate(self) -> Testdrive:
4848
return Testdrive(
4949
dedent(
50-
"""
50+
r"""
5151
> SHOW CREATE VIEW rename_view_viewB3;
52-
materialize.public.rename_view_viewb3 "CREATE VIEW \\"materialize\\".\\"public\\".\\"rename_view_viewb3\\" AS SELECT \\"f2\\" FROM \\"materialize\\".\\"public\\".\\"rename_view_viewa3\\" WHERE \\"f2\\" > 0"
52+
materialize.public.rename_view_viewb3 "CREATE VIEW\n materialize.public.rename_view_viewb3\n AS SELECT f2 FROM materialize.public.rename_view_viewa3 WHERE f2 > 0;"
5353
5454
> SELECT * FROM rename_view_viewA3;
5555
1

misc/python/materialize/checks/all_checks/retain_history.py

-6
Original file line numberDiff line numberDiff line change
@@ -234,12 +234,6 @@ def validate(self) -> Testdrive:
234234
definition_validations = f"""
235235
> SELECT create_sql FROM (SHOW CREATE MATERIALIZED VIEW retain_history_mv1);
236236
"CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"retain_history_mv1\\" IN CLUSTER \\"quickstart\\" WITH (RETAIN HISTORY = FOR '{RETAIN_HISTORY_DURATION}', REFRESH = ON COMMIT) AS SELECT * FROM \\"materialize\\".\\"public\\".\\"retain_history_table\\""
237-
238-
> SELECT create_sql FROM (SHOW CREATE MATERIALIZED VIEW retain_history_mv2);
239-
"CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"retain_history_mv2\\" IN CLUSTER \\"quickstart\\" WITH (RETAIN HISTORY = FOR '{RETAIN_HISTORY_DURATION}', REFRESH = ON COMMIT) AS SELECT * FROM \\"materialize\\".\\"public\\".\\"retain_history_table\\""
240-
241-
> SELECT create_sql FROM (SHOW CREATE MATERIALIZED VIEW retain_history_mv3);
242-
"CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"retain_history_mv3\\" IN CLUSTER \\"quickstart\\" WITH (RETAIN HISTORY = FOR '{RETAIN_HISTORY_DURATION}', REFRESH = ON COMMIT) AS SELECT * FROM \\"materialize\\".\\"public\\".\\"retain_history_mv2\\""
243237
"""
244238

245239
other_validations = """

misc/python/materialize/checks/all_checks/text_bytea_types.py

+1-7
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,7 @@ def manipulate(self) -> list[Testdrive]:
4949
def validate(self) -> Testdrive:
5050
return Testdrive(
5151
dedent(
52-
f"""
53-
> SHOW CREATE MATERIALIZED VIEW string_bytea_types_view1;
54-
materialize.public.string_bytea_types_view1 "CREATE MATERIALIZED VIEW \\"materialize\\".\\"public\\".\\"string_bytea_types_view1\\" IN CLUSTER \\"{self._default_cluster()}\\" WITH (REFRESH = ON COMMIT) AS SELECT \\"text_col\\", \\"bytea_col\\", 'това'::\\"pg_catalog\\".\\"text\\", '\\\\xAAAA'::\\"pg_catalog\\".\\"bytea\\" FROM \\"materialize\\".\\"public\\".\\"text_bytea_types_table\\" WHERE \\"text_col\\" >= ''::\\"pg_catalog\\".\\"text\\" AND \\"bytea_col\\" >= ''::\\"pg_catalog\\".\\"bytea\\""
55-
52+
"""
5653
> SELECT text_col, text, LENGTH(bytea_col), LENGTH(bytea) FROM string_bytea_types_view1;
5754
aaaa това 2 2
5855
aaaa това 2 2
@@ -61,9 +58,6 @@ def validate(self) -> Testdrive:
6158
"това е" това 10 2
6259
"това е" това 10 2
6360
64-
> SHOW CREATE VIEW string_bytea_types_view2;
65-
materialize.public.string_bytea_types_view2 "CREATE VIEW \\"materialize\\".\\"public\\".\\"string_bytea_types_view2\\" AS SELECT \\"text_col\\", \\"bytea_col\\", 'това'::\\"pg_catalog\\".\\"text\\", '\\\\xAAAA'::\\"pg_catalog\\".\\"bytea\\" FROM \\"materialize\\".\\"public\\".\\"text_bytea_types_table\\" WHERE \\"text_col\\" >= ''::\\"pg_catalog\\".\\"text\\" AND \\"bytea_col\\" >= ''::\\"pg_catalog\\".\\"bytea\\""
66-
6761
> SELECT text_col, text, LENGTH(bytea_col), LENGTH(bytea) FROM string_bytea_types_view2;
6862
aaaa това 2 2
6963
aaaa това 2 2

0 commit comments

Comments
 (0)