Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pretty-print in SHOW CREATE #31933

Merged
merged 4 commits into from
Apr 1, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions misc/dbt-materialize/tests/adapter/test_constraints.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,7 @@ def test_ddl_enforcement(self, project):
fetch="one",
)
assert (
'ASSERT NOT NULL = "a", ASSERT NOT NULL = "b"'
in nullability_assertions_ddl[1]
"ASSERT NOT NULL = a, ASSERT NOT NULL = b" in nullability_assertions_ddl[1]
)


Expand Down
9 changes: 0 additions & 9 deletions misc/python/materialize/checks/all_checks/create_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,6 @@ def validate(self) -> Testdrive:
> SELECT * FROM create_table_view2;
2

> SHOW CREATE TABLE create_table1;
materialize.public.create_table1 "CREATE TABLE \\"materialize\\".\\"public\\".\\"create_table1\\" (\\"f1\\" \\"pg_catalog\\".\\"int4\\", \\"f2\\" \\"pg_catalog\\".\\"int4\\" NOT NULL DEFAULT 1234)"

! INSERT INTO create_table1 (f2) VALUES (NULL);
contains: null value in column

Expand All @@ -72,9 +69,6 @@ def validate(self) -> Testdrive:

> DELETE FROM create_table1 WHERE f1 = 999;

> SHOW CREATE TABLE create_table2;
materialize.public.create_table2 "CREATE TABLE \\"materialize\\".\\"public\\".\\"create_table2\\" (\\"f1\\" \\"pg_catalog\\".\\"int4\\", \\"f2\\" \\"pg_catalog\\".\\"int4\\" NOT NULL DEFAULT 1234)"

! INSERT INTO create_table2 (f2) VALUES (NULL);
contains: null value in column

Expand All @@ -84,9 +78,6 @@ def validate(self) -> Testdrive:

> DELETE FROM create_table2 WHERE f1 = 999;

> SHOW CREATE TABLE create_table3;
materialize.public.create_table3 "CREATE TABLE \\"materialize\\".\\"public\\".\\"create_table3\\" (\\"f1\\" \\"pg_catalog\\".\\"int4\\", \\"f2\\" \\"pg_catalog\\".\\"int4\\" NOT NULL DEFAULT 1234)"

! INSERT INTO create_table3 (f2) VALUES (NULL);
contains: null value in column

Expand Down
21 changes: 14 additions & 7 deletions misc/python/materialize/checks/all_checks/debezium.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,15 +149,22 @@ def validate(self) -> Testdrive:
F 2 16000
"""
+ (
"""
r"""
$ set-regex match="FORMAT .*? ENVELOPE DEBEZIUM " replacement=""

> SHOW CREATE SOURCE debezium_source1;
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\\""
> SHOW CREATE SOURCE debezium_source2;
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\\""
> SHOW CREATE SOURCE debezium_source3;
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\\""
>[version>=14000] SHOW CREATE SOURCE debezium_source1;
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;"
>[version>=14000] SHOW CREATE SOURCE debezium_source2;
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;"
>[version>=14000] SHOW CREATE SOURCE debezium_source3;
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;"

>[version<14000] SHOW CREATE SOURCE debezium_source1;
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\""
>[version<14000] SHOW CREATE SOURCE debezium_source2;
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\""
>[version<14000] SHOW CREATE SOURCE debezium_source3;
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\""
"""
if not self.is_running_as_cloudtest()
else ""
Expand Down
10 changes: 7 additions & 3 deletions misc/python/materialize/checks/all_checks/json_source.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,13 @@ def validate(self) -> Testdrive:
"\\"object\\"" "{\\"a\\":\\"b\\",\\"c\\":\\"d\\"}"
"\\"str\\"" "\\"hello\\""
"""
+ """
> SHOW CREATE SOURCE format_jsonb_src;
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\\""
+ r"""

>[version>=14000] SHOW CREATE SOURCE format_jsonb_src;
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;"

>[version<14000] SHOW CREATE SOURCE format_jsonb_src;
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-1') EXPOSE PROGRESS AS \"materialize\".\"public\".\"format_jsonb_src_progress\""
"""
)
)
11 changes: 7 additions & 4 deletions misc/python/materialize/checks/all_checks/kafka_formats.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ def manipulate(self) -> list[Testdrive]:
def validate(self) -> Testdrive:
return Testdrive(
dedent(
"""
r"""
> SELECT COUNT(*) FROM format_bytes1
3

Expand Down Expand Up @@ -217,10 +217,13 @@ def validate(self) -> Testdrive:
key2A key2B value2A value2B
key3A key3B value3A value3B

$ set-regex match=testdrive-format-bytes-\\d+ replacement=<TOPIC>
$ set-regex match=testdrive-format-bytes-\d+ replacement=<TOPIC>

>[version>=14000] SHOW CREATE SOURCE format_bytes1_src;
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;"

> SHOW CREATE SOURCE format_bytes1_src;
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\\""
>[version<14000] SHOW CREATE SOURCE format_bytes1_src;
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\""
"""
)
)
29 changes: 0 additions & 29 deletions misc/python/materialize/checks/all_checks/materialized_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,35 +287,6 @@ def validate(self) -> Testdrive:
2
3

$ set-regex match=\\d{13} replacement=<TIMESTAMP>

> SHOW CREATE MATERIALIZED VIEW refresh_view_2s_1
"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\\""

> SHOW CREATE MATERIALIZED VIEW refresh_view_2s_2
"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\\""

> SHOW CREATE MATERIALIZED VIEW refresh_view_2s_3
"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\\""

> SHOW CREATE MATERIALIZED VIEW refresh_view_at_1
"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\\""

> SHOW CREATE MATERIALIZED VIEW refresh_view_at_2
"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\\""

> SHOW CREATE MATERIALIZED VIEW refresh_view_at_3
"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\\""

> SHOW CREATE MATERIALIZED VIEW refresh_view_late_1
"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\\""

> SHOW CREATE MATERIALIZED VIEW refresh_view_late_2
"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\\""

> SHOW CREATE MATERIALIZED VIEW refresh_view_late_3
"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\\""

$ 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=<>

>[version<13900] EXPLAIN TIMESTAMP FOR SELECT * FROM refresh_view_late_1
Expand Down
1 change: 1 addition & 0 deletions misc/python/materialize/checks/all_checks/mysql_cdc.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@ def validate(self) -> Testdrive:
H 200 {self.expects}

# TODO: Figure out the quoting here -- it returns "f4" when done using the SQL shell
# (Might have changed again with https://github.com/MaterializeInc/materialize/pull/31933)
# > SELECT regexp_match(create_sql, 'TEXT COLUMNS = \\((.*?)\\)')[1] FROM (SHOW CREATE SOURCE mysql_source_tableA{self.suffix});
# "\"f4\""

Expand Down
10 changes: 1 addition & 9 deletions misc/python/materialize/checks/all_checks/null_value.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,7 @@ def manipulate(self) -> list[Testdrive]:
def validate(self) -> Testdrive:
return Testdrive(
dedent(
f"""
> SHOW CREATE VIEW null_value_view1;
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"

"""
> SELECT * FROM null_value_view1;
<null> <null> <null>
<null> <null> <null>
Expand All @@ -69,9 +66,6 @@ def validate(self) -> Testdrive:
<null> <null> <null>
<null> <null> <null>

> SHOW CREATE MATERIALIZED VIEW null_value_view2;
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"

> SELECT * FROM null_value_view2;
<null> <null> <null>
<null> <null> <null>
Expand All @@ -85,8 +79,6 @@ def validate(self) -> Testdrive:
<null> <null> <null>
<null> <null> <null>
<null> <null> <null>


"""
)
)
9 changes: 6 additions & 3 deletions misc/python/materialize/checks/all_checks/rename_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,12 @@ def manipulate(self) -> list[Testdrive]:
def validate(self) -> Testdrive:
return Testdrive(
dedent(
"""
> SHOW CREATE VIEW rename_view_viewB3;
materialize.public.rename_view_viewb3 "CREATE VIEW \\"materialize\\".\\"public\\".\\"rename_view_viewb3\\" AS SELECT \\"f2\\" FROM \\"materialize\\".\\"public\\".\\"rename_view_viewa3\\" WHERE \\"f2\\" > 0"
r"""
>[version>=14000] SHOW CREATE VIEW rename_view_viewB3;
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;"

>[version<14000] SHOW CREATE VIEW rename_view_viewB3;
materialize.public.rename_view_viewb3 "CREATE VIEW \"materialize\".\"public\".\"rename_view_viewb3\" AS SELECT \"f2\" FROM \"materialize\".\"public\".\"rename_view_viewa3\" WHERE \"f2\" > 0"

> SELECT * FROM rename_view_viewA3;
1
Expand Down
6 changes: 0 additions & 6 deletions misc/python/materialize/checks/all_checks/retain_history.py
Original file line number Diff line number Diff line change
Expand Up @@ -234,12 +234,6 @@ def validate(self) -> Testdrive:
definition_validations = f"""
> SELECT create_sql FROM (SHOW CREATE MATERIALIZED VIEW retain_history_mv1);
"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\\""

> SELECT create_sql FROM (SHOW CREATE MATERIALIZED VIEW retain_history_mv2);
"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\\""

> SELECT create_sql FROM (SHOW CREATE MATERIALIZED VIEW retain_history_mv3);
"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\\""
"""

other_validations = """
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,7 @@ def manipulate(self) -> list[Testdrive]:
def validate(self) -> Testdrive:
return Testdrive(
dedent(
f"""
> SHOW CREATE MATERIALIZED VIEW string_bytea_types_view1;
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\\""

"""
> SELECT text_col, text, LENGTH(bytea_col), LENGTH(bytea) FROM string_bytea_types_view1;
aaaa това 2 2
aaaa това 2 2
Expand All @@ -61,9 +58,6 @@ def validate(self) -> Testdrive:
"това е" това 10 2
"това е" това 10 2

> SHOW CREATE VIEW string_bytea_types_view2;
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\\""

> SELECT text_col, text, LENGTH(bytea_col), LENGTH(bytea) FROM string_bytea_types_view2;
aaaa това 2 2
aaaa това 2 2
Expand Down
Loading