This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 8ed97235bdb Enhance support for `ALTER TABLE` and `ALTER VIEW` in
PostgreSQL (#20774)
8ed97235bdb is described below
commit 8ed97235bdb38037dfd9089009a20bbfe4a75c89
Author: Everly Precia Suresh <[email protected]>
AuthorDate: Mon Sep 5 05:01:07 2022 +0530
Enhance support for `ALTER TABLE` and `ALTER VIEW` in PostgreSQL (#20774)
* Finish GSOC tasks
* Enhance support for ALTER TABLE and ALTER VIEW in PostgreSeSQL
---
.../main/antlr4/imports/postgresql/DDLStatement.g4 | 16 ++++++++++++---
.../antlr4/imports/postgresql/PostgreSQLKeyword.g4 | 4 ++++
.../src/main/resources/case/ddl/alter-table.xml | 24 ++++++++++++++++++++++
.../src/main/resources/case/ddl/alter-view.xml | 1 +
.../resources/sql/supported/ddl/alter-table.xml | 12 ++++++++---
.../resources/sql/supported/ddl/alter-view.xml | 1 +
.../main/resources/sql/unsupported/unsupported.xml | 24 ----------------------
7 files changed, 52 insertions(+), 30 deletions(-)
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/DDLStatement.g4
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/DDLStatement.g4
index 4aa5a14a15a..9cfdf58e721 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/DDLStatement.g4
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/DDLStatement.g4
@@ -340,7 +340,7 @@ alterDefinitionClause
partitionCmd
: ATTACH PARTITION qualifiedName partitionBoundSpec
- | DETACH PARTITION qualifiedName
+ | DETACH PARTITION qualifiedName (CONCURRENTLY | FINALIZE)?
;
alterIndexDefinitionClause
@@ -383,18 +383,28 @@ alterTableAction
| modifyConstraintSpecification
| validateConstraintSpecification
| dropConstraintSpecification
+ | ALTER COLUMN? colId SET STATISTICS signedIconst
+ | ALTER COLUMN? NUMBER_ SET STATISTICS signedIconst
+ | ALTER COLUMN? colId SET reloptions
+ | ALTER COLUMN? colId RESET reloptions
+ | ALTER COLUMN? colId SET STORAGE colId
+ | ALTER COLUMN? colId SET columnCompression
+ | ALTER COLUMN? colId DROP EXPRESSION ifExists?
| (DISABLE | ENABLE) TRIGGER (ignoredIdentifier | ALL | USER)?
| ENABLE (REPLICA | ALWAYS) TRIGGER ignoredIdentifier
| (DISABLE | ENABLE) RULE ignoredIdentifier
| ENABLE (REPLICA | ALWAYS) RULE ignoredIdentifier
| (DISABLE | ENABLE | (NO? FORCE)) ROW LEVEL SECURITY
| CLUSTER ON indexName
+ | SET (ACCESS METHOD name) (COMMA_ ACCESS METHOD name)*
| SET WITHOUT CLUSTER
| SET (WITH | WITHOUT) OIDS
+ | SET STATISTICS signedIconst
| SET TABLESPACE ignoredIdentifier
| SET (LOGGED | UNLOGGED)
- | SET LP_ storageParameterWithValue (COMMA_ storageParameterWithValue)* RP_
- | RESET LP_ storageParameter (COMMA_ storageParameter)* RP_
+ | SET LP_ (storageParameterWithValue) (COMMA_ storageParameterWithValue)*
RP_
+ | SET LP_ (storageParameter) (COMMA_ storageParameter)* RP_
+ | RESET LP_ storageParameterWithValue (COMMA_ storageParameterWithValue)*
RP_
| INHERIT tableName
| NO INHERIT tableName
| OF dataTypeName
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/PostgreSQLKeyword.g4
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/PostgreSQLKeyword.g4
index 944341481db..09b34aa05e1 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/PostgreSQLKeyword.g4
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/PostgreSQLKeyword.g4
@@ -151,6 +151,10 @@ CONCURRENTLY
: C O N C U R R E N T L Y
;
+FINALIZE
+ : F I N A L I Z E
+ ;
+
CONNECT
: C O N N E C T
;
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/alter-table.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/alter-table.xml
index d43fe38fea8..f582d83e3b2 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/alter-table.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/alter-table.xml
@@ -1200,4 +1200,28 @@
<alter-table sql-case-id="alter_table_alter_column_set_invisible">
<table name="t_order" start-index="12" stop-index="18" />
</alter-table>
+
+ <alter-table sql-case-id="alter_table_set_statistics">
+ <table name="t_order" start-index="12" stop-index="18"/>
+ </alter-table>
+
+ <alter-table sql-case-id="alter_table_set_compression">
+ <table name="t_order" start-index="12" stop-index="18"/>
+ </alter-table>
+
+ <alter-table sql-case-id="alter_table_set">
+ <table name="t_order" start-index="12" stop-index="18"/>
+ </alter-table>
+
+ <alter-table sql-case-id="alter_table_reset">
+ <table name="t_order" start-index="12" stop-index="18"/>
+ </alter-table>
+
+ <alter-table sql-case-id="alter_table_set_access_method">
+ <table name="t_order" start-index="12" stop-index="18"/>
+ </alter-table>
+
+ <alter-table sql-case-id="alter_table_drop_expression">
+ <table name="t_order" start-index="12" stop-index="18"/>
+ </alter-table>
</sql-parser-test-cases>
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/alter-view.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/alter-view.xml
index 0330f40d44b..9faad410a87 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/alter-view.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/alter-view.xml
@@ -22,6 +22,7 @@
<alter-view sql-case-id="alter_view_drop_default" />
<alter-view sql-case-id="alter_view_owner" />
<alter-view sql-case-id="alter_view_rename" />
+ <alter-view sql-case-id="alter_view_rename_column" />
<alter-view sql-case-id="alter_view_set_schema" />
<alter-view sql-case-id="alter_view_set_view_option" />
<alter-view sql-case-id="alter_view_reset" />
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-table.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-table.xml
index 6ed5daea049..c310cd71784 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-table.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-table.xml
@@ -41,7 +41,7 @@
<sql-case id="alter_table_add_columns_float_point_type_mysql" value="ALTER
TABLE t_order ADD column4 FLOAT(10,2), ADD column5 DOUBLE(10,2)"
db-types="MySQL" />
<sql-case id="alter_table_add_columns_float_point_type_oracle"
value="ALTER TABLE t_order ADD (column4 FLOAT(10), column5 double precision)"
db-types="Oracle" />
<sql-case id="alter_table_add_columns_bit_type" value="ALTER TABLE t_order
ADD column4 bit" db-types="MySQL,PostgreSQL,openGauss,SQLServer" />
- <sql-case id="alter_table_add_columns_date_type_mysql" value="ALTER TABLE
t_order ADD column4 YEAR" db-types="MySQL" />
+ <sql-case id="alter_table_add_columns_date_type_mysql" value="ALTER TABLE
t_order ADD column4 YEAR" db-types="MySQL,PostgreSQL" />
<sql-case id="alter_table_add_columns_date_type_oracle" value="ALTER TABLE
t_order ADD (column4 DATE, column5 DATETIME, column6 TIMESTAMP, column7
TIMESTAMP WITH TIME ZONE)" db-types="Oracle" />
<sql-case id="alter_table_add_columns_date_type" value="ALTER TABLE
t_order ADD column4 DATE, ADD column5 DATETIME, ADD column6 TIMESTAMP, ADD
column7 TIME" db-types="MySQL,PostgreSQL,openGauss" />
<sql-case id="alter_table_add_columns_string_type" value="ALTER TABLE
t_order ADD column4 CHAR, ADD column5 VARCHAR(32), ADD column6 TEXT"
db-types="MySQL,PostgreSQL,openGauss,SQLServer" />
@@ -57,7 +57,7 @@
<sql-case id="alter_table_modify_column_with_first" value="ALTER TABLE
t_order MODIFY status VARCHAR(20) FIRST" db-types="MySQL" />
<sql-case id="alter_table_modify_column_with_after" value="ALTER TABLE
t_order MODIFY status VARCHAR(20) AFTER order_id" db-types="MySQL" />
<sql-case id="alter_table_modify_column_with_first_after" value="ALTER
TABLE t_order MODIFY status VARCHAR(20) FIRST, MODIFY user_id INT AFTER status"
db-types="MySQL" />
- <sql-case id="alter_table_drop_column" value="ALTER TABLE t_order DROP
COLUMN user_id" />
+ <sql-case id="alter_table_drop_column" value="ALTER TABLE t_order DROP
COLUMN user_id" db-types="PostgreSQL"/>
<sql-case id="alter_table_drop_columns" value="ALTER TABLE t_order DROP
user_id, DROP column5" db-types="MySQL,PostgreSQL,openGauss" />
<sql-case id="alter_table_change_column" value="ALTER TABLE t_order CHANGE
user_id column4 VARCHAR(10)" db-types="MySQL" />
<sql-case id="alter_table_add_primary_key" value="ALTER TABLE t_order ADD
CONSTRAINT pk_user_id PRIMARY KEY (user_id)" />
@@ -110,7 +110,7 @@
<sql-case id="alter_table_alter_column_for_sqlserver" value="ALTER TABLE
t_order ALTER COLUMN column4 VARCHAR(20)" db-types="SQLServer" />
<sql-case id="alter_table_set_schema" value="ALTER TABLE t_order SET
SCHEMA yourschema" db-types="PostgreSQL,openGauss" />
<sql-case id="alter_table_attach_partition" value="ALTER TABLE t_order
ATTACH PARTITION measurement_y2016m07 FOR VALUES FROM ('2016-07-01') TO
('2016-08-01')" db-types="PostgreSQL,openGauss" />
- <sql-case id="alter_table_detach_partition" value="ALTER TABLE t_order
ATTACH PARTITION measurement_y2016m07 FOR VALUES FROM ('2016-07-01') TO
('2016-08-01')" db-types="PostgreSQL,openGauss" />
+ <sql-case id="alter_table_detach_partition" value="ALTER TABLE t_order
DETACH PARTITION measurement_y2016m07" db-types="PostgreSQL" />
<sql-case id="alter_table_in_hash_partitioned_table" value="ALTER TABLE
t_order ATTACH PARTITION orders_p4 FOR VALUES WITH (MODULUS 4, REMAINDER 3)"
db-types="PostgreSQL,openGauss" />
<sql-case id="alter_table_with_optimize_memory_read" value="ALTER TABLE
t_log MEMOPTIMIZE FOR READ ADD (name VARCHAR(10))" db-types="Oracle" />
<sql-case id="alter_table_with_no_optimize_memory_write" value="ALTER
TABLE t_log NO MEMOPTIMIZE FOR WRITE ADD (name VARCHAR(10))" db-types="Oracle"
/>
@@ -148,4 +148,10 @@
<sql-case id="alter_table_modify_column_with_invisible" value="ALTER TABLE
t_order MODIFY COLUMN status VARCHAR(10) INVISIBLE" db-types="MySQL" />
<sql-case id="alter_table_alter_column_set_visible" value="ALTER TABLE
t_order ALTER COLUMN status SET VISIBLE" db-types="MySQL" />
<sql-case id="alter_table_alter_column_set_invisible" value="ALTER TABLE
t_order ALTER COLUMN status SET INVISIBLE" db-types="MySQL" />
+ <sql-case id="alter_table_set_statistics" value="ALTER TABLE t_order ALTER
COLUMN status SET STATISTICS -1" db-types="PostgreSQL" />
+ <sql-case id="alter_table_set_compression" value="ALTER TABLE t_order
ALTER COLUMN f1 SET COMPRESSION lz4;" db-types="PostgreSQL" />
+ <sql-case id="alter_table_set" value="ALTER TABLE t_order SET (fillfactor
= 10)" db-types="PostgreSQL" />
+ <sql-case id="alter_table_reset" value="ALTER TABLE t_order RESET
(fillfactor = 12)" db-types="PostgreSQL" />
+ <sql-case id="alter_table_set_access_method" value="ALTER TABLE t_order
SET ACCESS METHOD heap, SET ACCESS METHOD heap2" db-types="PostgreSQL" />
+ <sql-case id="alter_table_drop_expression" value="ALTER TABLE t_order
ALTER COLUMN a DROP EXPRESSION;" db-types="PostgreSQL" />
</sql-cases>
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-view.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-view.xml
index 9933ebcba85..d7a5a42aff1 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-view.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ddl/alter-view.xml
@@ -22,6 +22,7 @@
<sql-case id="alter_view_drop_default" value="ALTER VIEW order_view ALTER
COLUMN status DROP DEFAULT" db-types="PostgreSQL,openGauss" />
<sql-case id="alter_view_owner" value="ALTER VIEW order_view OWNER TO
test" db-types="PostgreSQL,openGauss" />
<sql-case id="alter_view_rename" value="ALTER VIEW order_view RENAME TO
new_order_view" db-types="PostgreSQL,openGauss" />
+ <sql-case id="alter_view_rename_column" value="ALTER VIEW order_view
RENAME COLUMN sales TO orders" db-types="PostgreSQL" />
<sql-case id="alter_view_set_schema" value="ALTER VIEW order_view SET
SCHEMA test" db-types="PostgreSQL,openGauss" />
<sql-case id="alter_view_set_view_option" value="ALTER VIEW order_view SET
(security_barrier=TRUE)" db-types="PostgreSQL,openGauss" />
<sql-case id="alter_view_reset" value="ALTER VIEW order_view RESET
(security_barrier)" db-types="PostgreSQL,openGauss" />
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
index 13cdbe0efbd..26a56461969 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
@@ -42,7 +42,6 @@
<sql-case id="select_case_when" value="select relname,c.oid = oldoid as
orig_oid,case relfilenode when 0 then 'none' when c.oid then 'own' when
oldfilenode then 'orig' else 'OTHER' end as storage, obj_description(c.oid,
'pg_class') as desc from pg_class c left join old_oids using (relname) where
relname like 'at_partitioned%' order by relname" db-types="PostgreSQL" />
<sql-case id="select_like" value="select conname, obj_description(oid,
'pg_constraint') as desc from pg_constraint where conname like
'at_partitioned%' order by conname" db-types="PostgreSQL" />
<sql-case id="select_keyword" value="select relname,c.oid = oldoid as
orig_oid,case relfilenode when 0 then 'none' when c.oid then 'own' when
oldfilenode then 'orig' else 'OTHER' end as storage, obj_description(c.oid,
'pg_class') as desc from pg_class c left join old_oids using (relname) where
relname like 'at_partitioned%' order by relname" db-types="PostgreSQL" />
- <sql-case id="alter_table_set" value="alter table alterlock set
(toast.autovacuum_enabled = off)" db-types="PostgreSQL" />
<sql-case id="create_by_mysql_source_test_case1" value="CREATE VIEW v1 AS
SELECT GROUPING(`߸߸߸߸߸߸߸߸߸߸0123456789012345678901234567890123456789`.a),
GROUPING(`߸߸߸߸߸߸߸߸߸߸0123456789012345678901234567890123456789`.a),
GROUPING(`߸߸߸߸߸߸߸߸߸߸0123456789012345678901234567890123456789`.a) FROM t1 AS
`߸߸߸߸߸߸߸߸߸߸0123456789012345678901234567890123456789` GROUP BY a WITH ROLLUP"
db-types="MySQL" />
<sql-case id="create_by_mysql_source_test_case2" value="CREATE DEFINER =
[email protected] VIEW v3 as SELECT * FROM t1" db-types="MySQL" />
<sql-case id="create_by_mysql_source_test_case4" value="CREATE
DEFINER=CURRENT_USER() FUNCTION should_not_parse RETURNS STRING SONAME
"should_not_parse.so"" db-types="MySQL" />
@@ -3260,29 +3259,6 @@
<sql-case id="alter_by_postgresql_source_test_case214" value="ALTER
OPERATOR FAMILY alt_opf7 USING btree DROP OPERATOR 1 (int4, int2, int8);"
db-types="PostgreSQL" />
<sql-case id="alter_by_postgresql_source_test_case215" value="ALTER
OPERATOR FAMILY alt_opf8 USING btree ADD OPERATOR 1 < (int4, int4);"
db-types="PostgreSQL" />
<sql-case id="alter_by_postgresql_source_test_case216" value="ALTER
OPERATOR FAMILY alt_opf9 USING gist ADD OPERATOR 1 < (int4, int4) FOR ORDER
BY float_ops;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case367" value="ALTER TABLE
ONLY gtest30 ALTER COLUMN b DROP EXPRESSION;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case368" value="ALTER TABLE
ab1 ALTER a SET STATISTICS -1;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case369" value="ALTER TABLE
am_partitioned SET ACCESS METHOD heap2;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case370" value="ALTER TABLE
badcompresstbl ALTER a SET COMPRESSION I_Do_Not_Exist_Compression;"
db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case371" value="ALTER TABLE
cmdata ALTER COLUMN f1 SET COMPRESSION lz4;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case372" value="ALTER TABLE
cmdata2 ALTER COLUMN f1 SET COMPRESSION default;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case373" value="ALTER TABLE
cmdata2 ALTER COLUMN f1 SET COMPRESSION pglz;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case374" value="ALTER TABLE
cmpart1 ALTER COLUMN f1 SET COMPRESSION pglz;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case375" value="ALTER TABLE
cmpart2 ALTER COLUMN f1 SET COMPRESSION lz4;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case376" value="ALTER TABLE
fd_pt1 ALTER COLUMN c8 SET STATISTICS -1;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case377" value="ALTER TABLE
gtest29 ALTER COLUMN a DROP EXPRESSION IF EXISTS;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case378" value="ALTER TABLE
gtest29 ALTER COLUMN a DROP EXPRESSION;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case379" value="ALTER TABLE
gtest29 ALTER COLUMN b DROP EXPRESSION;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case380" value="ALTER TABLE
gtest30 ALTER COLUMN b DROP EXPRESSION;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case381" value="ALTER TABLE
gtest30_1 ALTER COLUMN b DROP EXPRESSION;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case382" value="ALTER TABLE
heaptable SET ACCESS METHOD heap, SET ACCESS METHOD heap2;"
db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case383" value="ALTER TABLE
heaptable SET ACCESS METHOD heap2;" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case384" value="ALTER TABLE
no_index_cleanup SET (vacuum_index_cleanup = off,
toast.vacuum_index_cleanup = yes);" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case385" value="ALTER TABLE
no_index_cleanup SET (vacuum_index_cleanup = true,
toast.vacuum_index_cleanup = false);" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case386" value="ALTER TABLE
reloptions_test RESET (fillfactor=12);" db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case387" value="ALTER TABLE
reloptions_test RESET (toast.autovacuum_vacuum_cost_delay);"
db-types="PostgreSQL" />
- <sql-case id="alter_by_postgresql_source_test_case388" value="ALTER TABLE
reloptions_test SET (autovacuum_enabled, fillfactor=32);" db-types="PostgreSQL"
/>
- <sql-case id="alter_by_postgresql_source_test_case389" value="ALTER TABLE
reloptions_test SET (toast.autovacuum_vacuum_cost_delay = 24);"
db-types="PostgreSQL" />
<sql-case id="analyze_by_postgresql_source_test_case1" value="ANALYZE
(nonexistent-arg) does_not_exist;" db-types="PostgreSQL" />
<sql-case id="create_by_postgresql_source_test_case124" value="CREATE
CONSTRAINT TRIGGER trigtest_constraint AFTER INSERT OR UPDATE OR DELETE ON
foreign_schema.foreign_table_1 FOR EACH ROW EXECUTE PROCEDURE dummy_trigger();"
db-types="PostgreSQL" />
<sql-case id="create_by_postgresql_source_test_case183" value="CREATE
FUNCTION addr_nsp.trig() RETURNS TRIGGER LANGUAGE plpgsql AS $$ BEGIN END; $$;"
db-types="PostgreSQL" />