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

feat: (step 3.2) change all pg catalogs to views upon rw system tables #11334

Merged
merged 5 commits into from
Aug 2, 2023
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
14 changes: 7 additions & 7 deletions e2e_test/batch/catalog/pg_class.slt.part
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
query ITIT
SELECT oid,relname,relowner,relkind FROM pg_catalog.pg_class ORDER BY oid limit 15;
----
1 pg_type 1 r
1 pg_type 1 v
2 pg_namespace 1 v
3 pg_cast 1 r
3 pg_cast 1 v
4 pg_matviews 1 v
5 pg_user 1 v
6 pg_class 1 r
7 pg_index 1 r
6 pg_class 1 v
7 pg_index 1 v
8 pg_opclass 1 v
9 pg_collation 1 v
10 pg_am 1 v
11 pg_operator 1 v
12 pg_views 1 r
13 pg_attribute 1 r
12 pg_views 1 v
13 pg_attribute 1 v
14 pg_database 1 v
15 pg_description 1 r
15 pg_description 1 v

query ITIT
SELECT oid,relname,relowner,relkind FROM pg_catalog.pg_class WHERE oid = 'pg_namespace'::regclass;
Expand Down
10 changes: 5 additions & 5 deletions e2e_test/sink/remote/jdbc.load.slt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ CREATE TABLE t_remote_1 (
);

statement ok
CREATE TABLE rw_types (
CREATE TABLE rw_typed_data (
id BIGINT PRIMARY KEY,
varchar_column VARCHAR,
text_column TEXT,
Expand Down Expand Up @@ -96,7 +96,7 @@ CREATE SINK s_mysql_1 FROM mv_remote_1 WITH (
);

statement ok
CREATE SINK s2_postgres FROM rw_types WITH (
CREATE SINK s2_postgres FROM rw_typed_data WITH (
connector='jdbc',
jdbc.url='jdbc:postgresql://db:5432/test?user=test&password=connector',
table.name='t_types',
Expand All @@ -106,7 +106,7 @@ CREATE SINK s2_postgres FROM rw_types WITH (
);

statement ok
CREATE SINK s2_mysql FROM rw_types WITH (
CREATE SINK s2_mysql FROM rw_typed_data WITH (
connector='jdbc',
jdbc.url='jdbc:mysql://mysql:3306/test?user=mysqluser&password=mysqlpw',
table.name='t_types',
Expand Down Expand Up @@ -160,7 +160,7 @@ INSERT INTO t_remote_1 VALUES
(6, 'Varchar value 6', 'Text value 6', 789, 123, 456, 67.89, 34.56, 78.91, FALSE, '2023-05-27', '23:45:01', '2023-05-27 23:45:01', '2023-05-27 23:45:01', '2 years 3 months 4 days 5 hours 6 minutes 7 seconds', '{"key": "value6"}', E'\\xDEADBABE');

statement ok
INSERT INTO rw_types (id, varchar_column, text_column, integer_column, smallint_column, bigint_column, decimal_column, real_column, double_column, boolean_column, date_column, time_column, timestamp_column, interval_column, jsonb_column, array_column, array_column2) VALUES
INSERT INTO rw_typed_data (id, varchar_column, text_column, integer_column, smallint_column, bigint_column, decimal_column, real_column, double_column, boolean_column, date_column, time_column, timestamp_column, interval_column, jsonb_column, array_column, array_column2) VALUES
(1, 'Varcharvalue1', 'Textvalue1', 123, 456, 789, 12.34, 56.78, 90.12, TRUE, '2023-05-22', '12:34:56', '2023-05-22 12:34:56', '1 day', '{"key": "value"}', ARRAY['Value 1', 'Value 2'], '{12.345,56.789}'),
(2, 'Varcharvalue2', 'Textvalue2', 234, 567, 890, 23.45, 67.89, 01.23, FALSE, '2023-05-23', '23:45:01', '2023-05-23 23:45:01', '2 days', '{"key": "value2"}', ARRAY['Value 3', 'Value 4'], '{43.21,65.432}'),
(3, 'Varcharvalue1', 'Textvalue1', 123, 456, 789, 12.34, 56.78, 90.12, TRUE, '2023-05-22', '12:34:56', '2023-05-22 12:34:56', '1 day', '{"key": "value"}', ARRAY['How''re you?', '"hello\ \world"'], ARRAY[12.345,56.789]);
Expand Down Expand Up @@ -214,7 +214,7 @@ statement ok
DROP TABLE t_remote_1;

statement ok
DROP TABLE rw_types;
DROP TABLE rw_typed_data;

statement ok
FLUSH;
2 changes: 1 addition & 1 deletion integration_tests/mysql-sink/create_mv.sql
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ FROM
);

-- ingest the table back to RW
CREATE TABLE rw_types (
CREATE TABLE rw_typed_data (
id BIGINT PRIMARY KEY,
varchar_column VARCHAR,
text_column TEXT,
Expand Down
2 changes: 1 addition & 1 deletion integration_tests/mysql-sink/data_check
Original file line number Diff line number Diff line change
@@ -1 +1 @@
user_behaviors,target_count,rw_types
user_behaviors,target_count,rw_typed_data
2 changes: 1 addition & 1 deletion integration_tests/postgres-sink/create_mv.sql
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ FROM
);

-- ingest back to RW
CREATE table rw_types (
CREATE table rw_typed_data (
id BIGINT PRIMARY KEY,
varchar_column VARCHAR,
text_column TEXT,
Expand Down
2 changes: 1 addition & 1 deletion integration_tests/postgres-sink/data_check
Original file line number Diff line number Diff line change
@@ -1 +1 @@
user_behaviors,target_count,rw_types
user_behaviors,target_count,rw_typed_data
4 changes: 3 additions & 1 deletion src/batch/src/task/task_execution.rs
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,9 @@ impl ShutdownToken {
/// This method is cancel safe.
pub async fn cancelled(&mut self) {
if matches!(*self.0.borrow(), ShutdownMsg::Init) {
self.0.changed().await.expect("shutdown sender dropped");
if let Err(_err) = self.0.changed().await {
std::future::pending::<()>().await;
}
}
}

Expand Down
194 changes: 188 additions & 6 deletions src/frontend/planner_test/tests/testdata/output/pg_catalog.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,19 @@
- sql: |
select * from pg_catalog.pg_type
logical_plan: |-
LogicalProject { exprs: [pg_type.oid, pg_type.typname, pg_type.typelem, pg_type.typnotnull, pg_type.typbasetype, pg_type.typtypmod, pg_type.typcollation, pg_type.typlen, pg_type.typnamespace, pg_type.typtype, pg_type.typrelid, pg_type.typdefault, pg_type.typcategory, pg_type.typreceive] }
└─LogicalScan { table: pg_type, columns: [pg_type.oid, pg_type.typname, pg_type.typelem, pg_type.typnotnull, pg_type.typbasetype, pg_type.typtypmod, pg_type.typcollation, pg_type.typlen, pg_type.typnamespace, pg_type.typtype, pg_type.typrelid, pg_type.typdefault, pg_type.typcategory, pg_type.typreceive] }
batch_plan: 'BatchScan { table: pg_type, columns: [pg_type.oid, pg_type.typname, pg_type.typelem, pg_type.typnotnull, pg_type.typbasetype, pg_type.typtypmod, pg_type.typcollation, pg_type.typlen, pg_type.typnamespace, pg_type.typtype, pg_type.typrelid, pg_type.typdefault, pg_type.typcategory, pg_type.typreceive], distribution: Single }'
LogicalProject { exprs: [rw_types.id, rw_types.name, 0:Int32, false:Boolean, 0:Int32, -1:Int32, 0:Int32, 0:Int32, rw_schemas.id, 'b':Varchar, 0:Int32, null:Varchar, null:Varchar, null:Int32] }
└─LogicalShare { id: 3 }
└─LogicalProject { exprs: [rw_types.id, rw_types.name, 0:Int32, false:Boolean, 0:Int32, -1:Int32, 0:Int32, 0:Int32, rw_schemas.id, 'b':Varchar, 0:Int32, null:Varchar, null:Varchar, null:Int32] }
└─LogicalJoin { type: Inner, on: (rw_schemas.name = 'pg_catalog':Varchar), output: all }
├─LogicalScan { table: rw_types, columns: [rw_types.id, rw_types.name] }
└─LogicalScan { table: rw_schemas, columns: [rw_schemas.id, rw_schemas.name, rw_schemas.owner, rw_schemas.acl] }
batch_plan: |-
BatchProject { exprs: [rw_types.id, rw_types.name, 0:Int32, false:Boolean, 0:Int32, -1:Int32, 0:Int32, 0:Int32, rw_schemas.id, 'b':Varchar, 0:Int32, null:Varchar, null:Varchar, null:Int32] }
└─BatchNestedLoopJoin { type: Inner, predicate: true, output: all }
├─BatchScan { table: rw_types, columns: [rw_types.id, rw_types.name], distribution: Single }
└─BatchProject { exprs: [rw_schemas.id] }
└─BatchFilter { predicate: (rw_schemas.name = 'pg_catalog':Varchar) }
└─BatchScan { table: rw_schemas, columns: [rw_schemas.id, rw_schemas.name], distribution: Single }
- sql: |
select * from pg_catalog.pg_namespace
logical_plan: |-
Expand All @@ -16,9 +26,181 @@
- sql: |
select * from pg_catalog.pg_cast
logical_plan: |-
LogicalProject { exprs: [pg_cast.oid, pg_cast.castsource, pg_cast.casttarget, pg_cast.castcontext] }
└─LogicalScan { table: pg_cast, columns: [pg_cast.oid, pg_cast.castsource, pg_cast.casttarget, pg_cast.castcontext] }
batch_plan: 'BatchScan { table: pg_cast, columns: [pg_cast.oid, pg_cast.castsource, pg_cast.casttarget, pg_cast.castcontext], distribution: Single }'
LogicalProject { exprs: [*VALUES*_0.column_0, *VALUES*_0.column_1, *VALUES*_0.column_2, *VALUES*_0.column_3] }
└─LogicalShare { id: 2 }
└─LogicalProject { exprs: [*VALUES*_0.column_0, *VALUES*_0.column_1, *VALUES*_0.column_2, *VALUES*_0.column_3] }
└─LogicalValues
├─rows:
│ ┌─[0:Int32, 16:Int32, 23:Int32, 'e':Varchar]
│ ├─[1:Int32, 16:Int32, 1043:Int32, 'a':Varchar]
│ ├─[2:Int32, 21:Int32, 23:Int32, 'i':Varchar]
│ ├─[3:Int32, 21:Int32, 20:Int32, 'i':Varchar]
│ ├─[4:Int32, 21:Int32, 700:Int32, 'i':Varchar]
│ ├─[5:Int32, 21:Int32, 701:Int32, 'i':Varchar]
│ ├─[6:Int32, 21:Int32, 1700:Int32, 'i':Varchar]
│ ├─[7:Int32, 21:Int32, 1043:Int32, 'a':Varchar]
│ ├─[8:Int32, 21:Int32, 1301:Int32, 'i':Varchar]
│ ├─[9:Int32, 23:Int32, 16:Int32, 'e':Varchar]
│ ├─[10:Int32, 23:Int32, 21:Int32, 'a':Varchar]
│ ├─[11:Int32, 23:Int32, 20:Int32, 'i':Varchar]
│ ├─[12:Int32, 23:Int32, 700:Int32, 'i':Varchar]
│ ├─[13:Int32, 23:Int32, 701:Int32, 'i':Varchar]
│ ├─[14:Int32, 23:Int32, 1700:Int32, 'i':Varchar]
│ ├─[15:Int32, 23:Int32, 1043:Int32, 'a':Varchar]
│ ├─[16:Int32, 23:Int32, 1301:Int32, 'i':Varchar]
│ ├─[17:Int32, 20:Int32, 21:Int32, 'a':Varchar]
│ ├─[18:Int32, 20:Int32, 23:Int32, 'a':Varchar]
│ ├─[19:Int32, 20:Int32, 700:Int32, 'i':Varchar]
│ ├─[20:Int32, 20:Int32, 701:Int32, 'i':Varchar]
│ ├─[21:Int32, 20:Int32, 1700:Int32, 'i':Varchar]
│ ├─[22:Int32, 20:Int32, 1043:Int32, 'a':Varchar]
│ ├─[23:Int32, 20:Int32, 1301:Int32, 'i':Varchar]
│ ├─[24:Int32, 700:Int32, 21:Int32, 'a':Varchar]
│ ├─[25:Int32, 700:Int32, 23:Int32, 'a':Varchar]
│ ├─[26:Int32, 700:Int32, 20:Int32, 'a':Varchar]
│ ├─[27:Int32, 700:Int32, 701:Int32, 'i':Varchar]
│ ├─[28:Int32, 700:Int32, 1700:Int32, 'a':Varchar]
│ ├─[29:Int32, 700:Int32, 1043:Int32, 'a':Varchar]
│ ├─[30:Int32, 701:Int32, 21:Int32, 'a':Varchar]
│ ├─[31:Int32, 701:Int32, 23:Int32, 'a':Varchar]
│ ├─[32:Int32, 701:Int32, 20:Int32, 'a':Varchar]
│ ├─[33:Int32, 701:Int32, 700:Int32, 'a':Varchar]
│ ├─[34:Int32, 701:Int32, 1700:Int32, 'a':Varchar]
│ ├─[35:Int32, 701:Int32, 1043:Int32, 'a':Varchar]
│ ├─[36:Int32, 1700:Int32, 21:Int32, 'a':Varchar]
│ ├─[37:Int32, 1700:Int32, 23:Int32, 'a':Varchar]
│ ├─[38:Int32, 1700:Int32, 20:Int32, 'a':Varchar]
│ ├─[39:Int32, 1700:Int32, 700:Int32, 'i':Varchar]
│ ├─[40:Int32, 1700:Int32, 701:Int32, 'i':Varchar]
│ ├─[41:Int32, 1700:Int32, 1043:Int32, 'a':Varchar]
│ ├─[42:Int32, 1082:Int32, 1043:Int32, 'a':Varchar]
│ ├─[43:Int32, 1082:Int32, 1114:Int32, 'i':Varchar]
│ ├─[44:Int32, 1082:Int32, 1184:Int32, 'i':Varchar]
│ ├─[45:Int32, 1043:Int32, 16:Int32, 'e':Varchar]
│ ├─[46:Int32, 1043:Int32, 21:Int32, 'e':Varchar]
│ ├─[47:Int32, 1043:Int32, 23:Int32, 'e':Varchar]
│ ├─[48:Int32, 1043:Int32, 20:Int32, 'e':Varchar]
│ ├─[49:Int32, 1043:Int32, 700:Int32, 'e':Varchar]
│ ├─[50:Int32, 1043:Int32, 701:Int32, 'e':Varchar]
│ ├─[51:Int32, 1043:Int32, 1700:Int32, 'e':Varchar]
│ ├─[52:Int32, 1043:Int32, 1082:Int32, 'e':Varchar]
│ ├─[53:Int32, 1043:Int32, 1083:Int32, 'e':Varchar]
│ ├─[54:Int32, 1043:Int32, 1114:Int32, 'e':Varchar]
│ ├─[55:Int32, 1043:Int32, 1184:Int32, 'e':Varchar]
│ ├─[56:Int32, 1043:Int32, 1186:Int32, 'e':Varchar]
│ ├─[57:Int32, 1043:Int32, 17:Int32, 'e':Varchar]
│ ├─[58:Int32, 1043:Int32, 3802:Int32, 'e':Varchar]
│ ├─[59:Int32, 1043:Int32, 1301:Int32, 'e':Varchar]
│ ├─[60:Int32, 1083:Int32, 1043:Int32, 'a':Varchar]
│ ├─[61:Int32, 1083:Int32, 1186:Int32, 'i':Varchar]
│ ├─[62:Int32, 1114:Int32, 1082:Int32, 'a':Varchar]
│ ├─[63:Int32, 1114:Int32, 1043:Int32, 'a':Varchar]
│ ├─[64:Int32, 1114:Int32, 1083:Int32, 'a':Varchar]
│ ├─[65:Int32, 1114:Int32, 1184:Int32, 'i':Varchar]
│ ├─[66:Int32, 1184:Int32, 1082:Int32, 'a':Varchar]
│ ├─[67:Int32, 1184:Int32, 1043:Int32, 'a':Varchar]
│ ├─[68:Int32, 1184:Int32, 1083:Int32, 'a':Varchar]
│ ├─[69:Int32, 1184:Int32, 1114:Int32, 'a':Varchar]
│ ├─[70:Int32, 1186:Int32, 1043:Int32, 'a':Varchar]
│ ├─[71:Int32, 1186:Int32, 1083:Int32, 'a':Varchar]
│ ├─[72:Int32, 17:Int32, 1043:Int32, 'a':Varchar]
│ ├─[73:Int32, 3802:Int32, 16:Int32, 'e':Varchar]
│ ├─[74:Int32, 3802:Int32, 21:Int32, 'e':Varchar]
│ ├─[75:Int32, 3802:Int32, 23:Int32, 'e':Varchar]
│ ├─[76:Int32, 3802:Int32, 20:Int32, 'e':Varchar]
│ ├─[77:Int32, 3802:Int32, 700:Int32, 'e':Varchar]
│ ├─[78:Int32, 3802:Int32, 701:Int32, 'e':Varchar]
│ ├─[79:Int32, 3802:Int32, 1700:Int32, 'e':Varchar]
│ ├─[80:Int32, 3802:Int32, 1043:Int32, 'a':Varchar]
│ ├─[81:Int32, 1301:Int32, 701:Int32, 'e':Varchar]
│ └─[82:Int32, 1301:Int32, 1043:Int32, 'a':Varchar]
└─schema: Schema { fields: [*VALUES*_0.column_0:Int32, *VALUES*_0.column_1:Int32, *VALUES*_0.column_2:Int32, *VALUES*_0.column_3:Varchar] }
batch_plan: |-
BatchValues
└─rows:
┌─[0:Int32, 16:Int32, 23:Int32, 'e':Varchar]
├─[1:Int32, 16:Int32, 1043:Int32, 'a':Varchar]
├─[2:Int32, 21:Int32, 23:Int32, 'i':Varchar]
├─[3:Int32, 21:Int32, 20:Int32, 'i':Varchar]
├─[4:Int32, 21:Int32, 700:Int32, 'i':Varchar]
├─[5:Int32, 21:Int32, 701:Int32, 'i':Varchar]
├─[6:Int32, 21:Int32, 1700:Int32, 'i':Varchar]
├─[7:Int32, 21:Int32, 1043:Int32, 'a':Varchar]
├─[8:Int32, 21:Int32, 1301:Int32, 'i':Varchar]
├─[9:Int32, 23:Int32, 16:Int32, 'e':Varchar]
├─[10:Int32, 23:Int32, 21:Int32, 'a':Varchar]
├─[11:Int32, 23:Int32, 20:Int32, 'i':Varchar]
├─[12:Int32, 23:Int32, 700:Int32, 'i':Varchar]
├─[13:Int32, 23:Int32, 701:Int32, 'i':Varchar]
├─[14:Int32, 23:Int32, 1700:Int32, 'i':Varchar]
├─[15:Int32, 23:Int32, 1043:Int32, 'a':Varchar]
├─[16:Int32, 23:Int32, 1301:Int32, 'i':Varchar]
├─[17:Int32, 20:Int32, 21:Int32, 'a':Varchar]
├─[18:Int32, 20:Int32, 23:Int32, 'a':Varchar]
├─[19:Int32, 20:Int32, 700:Int32, 'i':Varchar]
├─[20:Int32, 20:Int32, 701:Int32, 'i':Varchar]
├─[21:Int32, 20:Int32, 1700:Int32, 'i':Varchar]
├─[22:Int32, 20:Int32, 1043:Int32, 'a':Varchar]
├─[23:Int32, 20:Int32, 1301:Int32, 'i':Varchar]
├─[24:Int32, 700:Int32, 21:Int32, 'a':Varchar]
├─[25:Int32, 700:Int32, 23:Int32, 'a':Varchar]
├─[26:Int32, 700:Int32, 20:Int32, 'a':Varchar]
├─[27:Int32, 700:Int32, 701:Int32, 'i':Varchar]
├─[28:Int32, 700:Int32, 1700:Int32, 'a':Varchar]
├─[29:Int32, 700:Int32, 1043:Int32, 'a':Varchar]
├─[30:Int32, 701:Int32, 21:Int32, 'a':Varchar]
├─[31:Int32, 701:Int32, 23:Int32, 'a':Varchar]
├─[32:Int32, 701:Int32, 20:Int32, 'a':Varchar]
├─[33:Int32, 701:Int32, 700:Int32, 'a':Varchar]
├─[34:Int32, 701:Int32, 1700:Int32, 'a':Varchar]
├─[35:Int32, 701:Int32, 1043:Int32, 'a':Varchar]
├─[36:Int32, 1700:Int32, 21:Int32, 'a':Varchar]
├─[37:Int32, 1700:Int32, 23:Int32, 'a':Varchar]
├─[38:Int32, 1700:Int32, 20:Int32, 'a':Varchar]
├─[39:Int32, 1700:Int32, 700:Int32, 'i':Varchar]
├─[40:Int32, 1700:Int32, 701:Int32, 'i':Varchar]
├─[41:Int32, 1700:Int32, 1043:Int32, 'a':Varchar]
├─[42:Int32, 1082:Int32, 1043:Int32, 'a':Varchar]
├─[43:Int32, 1082:Int32, 1114:Int32, 'i':Varchar]
├─[44:Int32, 1082:Int32, 1184:Int32, 'i':Varchar]
├─[45:Int32, 1043:Int32, 16:Int32, 'e':Varchar]
├─[46:Int32, 1043:Int32, 21:Int32, 'e':Varchar]
├─[47:Int32, 1043:Int32, 23:Int32, 'e':Varchar]
├─[48:Int32, 1043:Int32, 20:Int32, 'e':Varchar]
├─[49:Int32, 1043:Int32, 700:Int32, 'e':Varchar]
├─[50:Int32, 1043:Int32, 701:Int32, 'e':Varchar]
├─[51:Int32, 1043:Int32, 1700:Int32, 'e':Varchar]
├─[52:Int32, 1043:Int32, 1082:Int32, 'e':Varchar]
├─[53:Int32, 1043:Int32, 1083:Int32, 'e':Varchar]
├─[54:Int32, 1043:Int32, 1114:Int32, 'e':Varchar]
├─[55:Int32, 1043:Int32, 1184:Int32, 'e':Varchar]
├─[56:Int32, 1043:Int32, 1186:Int32, 'e':Varchar]
├─[57:Int32, 1043:Int32, 17:Int32, 'e':Varchar]
├─[58:Int32, 1043:Int32, 3802:Int32, 'e':Varchar]
├─[59:Int32, 1043:Int32, 1301:Int32, 'e':Varchar]
├─[60:Int32, 1083:Int32, 1043:Int32, 'a':Varchar]
├─[61:Int32, 1083:Int32, 1186:Int32, 'i':Varchar]
├─[62:Int32, 1114:Int32, 1082:Int32, 'a':Varchar]
├─[63:Int32, 1114:Int32, 1043:Int32, 'a':Varchar]
├─[64:Int32, 1114:Int32, 1083:Int32, 'a':Varchar]
├─[65:Int32, 1114:Int32, 1184:Int32, 'i':Varchar]
├─[66:Int32, 1184:Int32, 1082:Int32, 'a':Varchar]
├─[67:Int32, 1184:Int32, 1043:Int32, 'a':Varchar]
├─[68:Int32, 1184:Int32, 1083:Int32, 'a':Varchar]
├─[69:Int32, 1184:Int32, 1114:Int32, 'a':Varchar]
├─[70:Int32, 1186:Int32, 1043:Int32, 'a':Varchar]
├─[71:Int32, 1186:Int32, 1083:Int32, 'a':Varchar]
├─[72:Int32, 17:Int32, 1043:Int32, 'a':Varchar]
├─[73:Int32, 3802:Int32, 16:Int32, 'e':Varchar]
├─[74:Int32, 3802:Int32, 21:Int32, 'e':Varchar]
├─[75:Int32, 3802:Int32, 23:Int32, 'e':Varchar]
├─[76:Int32, 3802:Int32, 20:Int32, 'e':Varchar]
├─[77:Int32, 3802:Int32, 700:Int32, 'e':Varchar]
├─[78:Int32, 3802:Int32, 701:Int32, 'e':Varchar]
├─[79:Int32, 3802:Int32, 1700:Int32, 'e':Varchar]
├─[80:Int32, 3802:Int32, 1043:Int32, 'a':Varchar]
├─[81:Int32, 1301:Int32, 701:Int32, 'e':Varchar]
└─[82:Int32, 1301:Int32, 1043:Int32, 'a':Varchar]
- sql: |
select pg_catalog.pg_get_userbyid(1)
logical_plan: |-
Expand Down
Loading
Loading