Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0c1f8f1

Browse files
committed
Use EXECUTE FUNCTION syntax for triggers more
Change pg_dump and ruleutils.c to use the FUNCTION keyword instead ofPROCEDURE in trigger and event trigger definitions.This completes the pieces of the transition started in0a63f99 that were kept out ofPostgreSQL 11 because of the required catversion change.Discussion:https://www.postgresql.org/message-id/381bef53-f7be-29c8-d977-948e389161d6@2ndquadrant.com
1 parent13b89f9 commit0c1f8f1

File tree

6 files changed

+38
-38
lines changed

6 files changed

+38
-38
lines changed

‎src/backend/catalog/information_schema.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2094,12 +2094,12 @@ CREATE VIEW triggers AS
20942094
AS cardinal_number)AS action_order,
20952095
CAST(
20962096
CASE WHEN pg_has_role(c.relowner,'USAGE')
2097-
THEN (regexp_match(pg_get_triggerdef(t.oid), E'.{35,} WHEN\\((.+)\\) EXECUTEPROCEDURE'))[1]
2097+
THEN (regexp_match(pg_get_triggerdef(t.oid), E'.{35,} WHEN\\((.+)\\) EXECUTEFUNCTION'))[1]
20982098
ELSEnull END
20992099
AS character_data)AS action_condition,
21002100
CAST(
21012101
substring(pg_get_triggerdef(t.oid)from
2102-
position('EXECUTEPROCEDURE'insubstring(pg_get_triggerdef(t.oid)from48))+47)
2102+
position('EXECUTEFUNCTION'insubstring(pg_get_triggerdef(t.oid)from48))+47)
21032103
AS character_data)AS action_statement,
21042104
CAST(
21052105
-- hard-wired reference to TRIGGER_TYPE_ROW

‎src/backend/utils/adt/ruleutils.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1044,7 +1044,7 @@ pg_get_triggerdef_worker(Oid trigid, bool pretty)
10441044
appendStringInfoString(&buf,") ");
10451045
}
10461046

1047-
appendStringInfo(&buf,"EXECUTEPROCEDURE %s(",
1047+
appendStringInfo(&buf,"EXECUTEFUNCTION %s(",
10481048
generate_function_name(trigrec->tgfoid,0,
10491049
NIL,argtypes,
10501050
false,NULL,EXPR_KIND_NONE));

‎src/bin/pg_dump/pg_dump.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17086,7 +17086,7 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo)
1708617086
appendPQExpBufferStr(query, " FOR EACH STATEMENT\n ");
1708717087

1708817088
/* regproc output is already sufficiently quoted */
17089-
appendPQExpBuffer(query, "EXECUTEPROCEDURE %s(",
17089+
appendPQExpBuffer(query, "EXECUTEFUNCTION %s(",
1709017090
tginfo->tgfname);
1709117091

1709217092
tgargs = (char *) PQunescapeBytea((unsigned char *) tginfo->tgargs,
@@ -17200,7 +17200,7 @@ dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo)
1720017200
appendPQExpBufferChar(query, ')');
1720117201
}
1720217202

17203-
appendPQExpBufferStr(query, "\n EXECUTEPROCEDURE ");
17203+
appendPQExpBufferStr(query, "\n EXECUTEFUNCTION ");
1720417204
appendPQExpBufferStr(query, evtinfo->evtfname);
1720517205
appendPQExpBufferStr(query, "();\n");
1720617206

‎src/bin/pg_dump/t/002_pg_dump.pl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1540,11 +1540,11 @@
15401540
create_order => 33,
15411541
create_sql => 'CREATE EVENT TRIGGER test_event_trigger
15421542
ON ddl_command_start
1543-
EXECUTEPROCEDURE dump_test.event_trigger_func();',
1543+
EXECUTEFUNCTION dump_test.event_trigger_func();',
15441544
regexp => qr/^
15451545
\QCREATE EVENT TRIGGER test_event_trigger\E
15461546
\QON ddl_command_start\E
1547-
\n\s+\QEXECUTEPROCEDURE dump_test.event_trigger_func();\E
1547+
\n\s+\QEXECUTEFUNCTION dump_test.event_trigger_func();\E
15481548
/xm,
15491549
like => {%full_runs, section_post_data => 1, },
15501550
},
@@ -1554,11 +1554,11 @@
15541554
create_sql => 'CREATE TRIGGER test_trigger
15551555
BEFORE INSERT ON dump_test.test_table
15561556
FOR EACH ROW WHEN (NEW.col1 > 10)
1557-
EXECUTEPROCEDURE dump_test.trigger_func();',
1557+
EXECUTEFUNCTION dump_test.trigger_func();',
15581558
regexp => qr/^
15591559
\QCREATE TRIGGER test_trigger BEFORE INSERT ON dump_test.test_table\E
15601560
\QFOR EACH ROW WHEN ((new.col1 > 10))\E
1561-
\QEXECUTEPROCEDURE dump_test.trigger_func();\E
1561+
\QEXECUTEFUNCTION dump_test.trigger_func();\E
15621562
/xm,
15631563
like => {
15641564
%full_runs,

‎src/include/catalog/catversion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@
5353
*/
5454

5555
/*yyyymmddN */
56-
#defineCATALOG_VERSION_NO201902011
56+
#defineCATALOG_VERSION_NO201902071
5757

5858
#endif

‎src/test/regress/expected/triggers.out

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -417,21 +417,21 @@ SELECT * FROM main_table ORDER BY a, b;
417417
(8 rows)
418418

419419
SELECT pg_get_triggerdef(oid, true) FROM pg_trigger WHERE tgrelid = 'main_table'::regclass AND tgname = 'modified_a';
420-
pg_get_triggerdef
421-
--------------------------------------------------------------------------------------------------------------------------------------------
422-
CREATE TRIGGER modified_a BEFORE UPDATE OF a ON main_table FOR EACH ROW WHEN (old.a <> new.a) EXECUTEPROCEDURE trigger_func('modified_a')
420+
pg_get_triggerdef
421+
-------------------------------------------------------------------------------------------------------------------------------------------
422+
CREATE TRIGGER modified_a BEFORE UPDATE OF a ON main_table FOR EACH ROW WHEN (old.a <> new.a) EXECUTEFUNCTION trigger_func('modified_a')
423423
(1 row)
424424

425425
SELECT pg_get_triggerdef(oid, false) FROM pg_trigger WHERE tgrelid = 'main_table'::regclass AND tgname = 'modified_a';
426-
pg_get_triggerdef
427-
-----------------------------------------------------------------------------------------------------------------------------------------------------
428-
CREATE TRIGGER modified_a BEFORE UPDATE OF a ON public.main_table FOR EACH ROW WHEN ((old.a <> new.a)) EXECUTEPROCEDURE trigger_func('modified_a')
426+
pg_get_triggerdef
427+
----------------------------------------------------------------------------------------------------------------------------------------------------
428+
CREATE TRIGGER modified_a BEFORE UPDATE OF a ON public.main_table FOR EACH ROW WHEN ((old.a <> new.a)) EXECUTEFUNCTION trigger_func('modified_a')
429429
(1 row)
430430

431431
SELECT pg_get_triggerdef(oid, true) FROM pg_trigger WHERE tgrelid = 'main_table'::regclass AND tgname = 'modified_any';
432-
pg_get_triggerdef
433-
--------------------------------------------------------------------------------------------------------------------------------------------------------------
434-
CREATE TRIGGER modified_any BEFORE UPDATE OF a ON main_table FOR EACH ROW WHEN (old.* IS DISTINCT FROM new.*) EXECUTEPROCEDURE trigger_func('modified_any')
432+
pg_get_triggerdef
433+
-------------------------------------------------------------------------------------------------------------------------------------------------------------
434+
CREATE TRIGGER modified_any BEFORE UPDATE OF a ON main_table FOR EACH ROW WHEN (old.* IS DISTINCT FROM new.*) EXECUTEFUNCTION trigger_func('modified_any')
435435
(1 row)
436436

437437
-- Test RENAME TRIGGER
@@ -477,9 +477,9 @@ FOR EACH STATEMENT EXECUTE PROCEDURE trigger_func('before_upd_a_stmt');
477477
CREATE TRIGGER after_upd_b_stmt_trig AFTER UPDATE OF b ON main_table
478478
FOR EACH STATEMENT EXECUTE PROCEDURE trigger_func('after_upd_b_stmt');
479479
SELECT pg_get_triggerdef(oid) FROM pg_trigger WHERE tgrelid = 'main_table'::regclass AND tgname = 'after_upd_a_b_row_trig';
480-
pg_get_triggerdef
481-
--------------------------------------------------------------------------------------------------------------------------------------------------
482-
CREATE TRIGGER after_upd_a_b_row_trig AFTER UPDATE OF a, b ON public.main_table FOR EACH ROW EXECUTEPROCEDURE trigger_func('after_upd_a_b_row')
480+
pg_get_triggerdef
481+
-------------------------------------------------------------------------------------------------------------------------------------------------
482+
CREATE TRIGGER after_upd_a_b_row_trig AFTER UPDATE OF a, b ON public.main_table FOR EACH ROW EXECUTEFUNCTION trigger_func('after_upd_a_b_row')
483483
(1 row)
484484

485485
UPDATE main_table SET a = 50;
@@ -1107,15 +1107,15 @@ DELETE 1
11071107
a | integer | | |
11081108
b | integer | | |
11091109
Triggers:
1110-
after_del_stmt_trig AFTER DELETE ON main_view FOR EACH STATEMENT EXECUTEPROCEDURE view_trigger('after_view_del_stmt')
1111-
after_ins_stmt_trig AFTER INSERT ON main_view FOR EACH STATEMENT EXECUTEPROCEDURE view_trigger('after_view_ins_stmt')
1112-
after_upd_stmt_trig AFTER UPDATE ON main_view FOR EACH STATEMENT EXECUTEPROCEDURE view_trigger('after_view_upd_stmt')
1113-
before_del_stmt_trig BEFORE DELETE ON main_view FOR EACH STATEMENT EXECUTEPROCEDURE view_trigger('before_view_del_stmt')
1114-
before_ins_stmt_trig BEFORE INSERT ON main_view FOR EACH STATEMENT EXECUTEPROCEDURE view_trigger('before_view_ins_stmt')
1115-
before_upd_stmt_trig BEFORE UPDATE ON main_view FOR EACH STATEMENT EXECUTEPROCEDURE view_trigger('before_view_upd_stmt')
1116-
instead_of_delete_trig INSTEAD OF DELETE ON main_view FOR EACH ROW EXECUTEPROCEDURE view_trigger('instead_of_del')
1117-
instead_of_insert_trig INSTEAD OF INSERT ON main_view FOR EACH ROW EXECUTEPROCEDURE view_trigger('instead_of_ins')
1118-
instead_of_update_trig INSTEAD OF UPDATE ON main_view FOR EACH ROW EXECUTEPROCEDURE view_trigger('instead_of_upd')
1110+
after_del_stmt_trig AFTER DELETE ON main_view FOR EACH STATEMENT EXECUTEFUNCTION view_trigger('after_view_del_stmt')
1111+
after_ins_stmt_trig AFTER INSERT ON main_view FOR EACH STATEMENT EXECUTEFUNCTION view_trigger('after_view_ins_stmt')
1112+
after_upd_stmt_trig AFTER UPDATE ON main_view FOR EACH STATEMENT EXECUTEFUNCTION view_trigger('after_view_upd_stmt')
1113+
before_del_stmt_trig BEFORE DELETE ON main_view FOR EACH STATEMENT EXECUTEFUNCTION view_trigger('before_view_del_stmt')
1114+
before_ins_stmt_trig BEFORE INSERT ON main_view FOR EACH STATEMENT EXECUTEFUNCTION view_trigger('before_view_ins_stmt')
1115+
before_upd_stmt_trig BEFORE UPDATE ON main_view FOR EACH STATEMENT EXECUTEFUNCTION view_trigger('before_view_upd_stmt')
1116+
instead_of_delete_trig INSTEAD OF DELETE ON main_view FOR EACH ROW EXECUTEFUNCTION view_trigger('instead_of_del')
1117+
instead_of_insert_trig INSTEAD OF INSERT ON main_view FOR EACH ROW EXECUTEFUNCTION view_trigger('instead_of_ins')
1118+
instead_of_update_trig INSTEAD OF UPDATE ON main_view FOR EACH ROW EXECUTEFUNCTION view_trigger('instead_of_upd')
11191119

11201120
-- Test dropping view triggers
11211121
DROP TRIGGER instead_of_insert_trig ON main_view;
@@ -1131,13 +1131,13 @@ View definition:
11311131
main_table.b
11321132
FROM main_table;
11331133
Triggers:
1134-
after_del_stmt_trig AFTER DELETE ON main_view FOR EACH STATEMENT EXECUTEPROCEDURE view_trigger('after_view_del_stmt')
1135-
after_ins_stmt_trig AFTER INSERT ON main_view FOR EACH STATEMENT EXECUTEPROCEDURE view_trigger('after_view_ins_stmt')
1136-
after_upd_stmt_trig AFTER UPDATE ON main_view FOR EACH STATEMENT EXECUTEPROCEDURE view_trigger('after_view_upd_stmt')
1137-
before_del_stmt_trig BEFORE DELETE ON main_view FOR EACH STATEMENT EXECUTEPROCEDURE view_trigger('before_view_del_stmt')
1138-
before_ins_stmt_trig BEFORE INSERT ON main_view FOR EACH STATEMENT EXECUTEPROCEDURE view_trigger('before_view_ins_stmt')
1139-
before_upd_stmt_trig BEFORE UPDATE ON main_view FOR EACH STATEMENT EXECUTEPROCEDURE view_trigger('before_view_upd_stmt')
1140-
instead_of_update_trig INSTEAD OF UPDATE ON main_view FOR EACH ROW EXECUTEPROCEDURE view_trigger('instead_of_upd')
1134+
after_del_stmt_trig AFTER DELETE ON main_view FOR EACH STATEMENT EXECUTEFUNCTION view_trigger('after_view_del_stmt')
1135+
after_ins_stmt_trig AFTER INSERT ON main_view FOR EACH STATEMENT EXECUTEFUNCTION view_trigger('after_view_ins_stmt')
1136+
after_upd_stmt_trig AFTER UPDATE ON main_view FOR EACH STATEMENT EXECUTEFUNCTION view_trigger('after_view_upd_stmt')
1137+
before_del_stmt_trig BEFORE DELETE ON main_view FOR EACH STATEMENT EXECUTEFUNCTION view_trigger('before_view_del_stmt')
1138+
before_ins_stmt_trig BEFORE INSERT ON main_view FOR EACH STATEMENT EXECUTEFUNCTION view_trigger('before_view_ins_stmt')
1139+
before_upd_stmt_trig BEFORE UPDATE ON main_view FOR EACH STATEMENT EXECUTEFUNCTION view_trigger('before_view_upd_stmt')
1140+
instead_of_update_trig INSTEAD OF UPDATE ON main_view FOR EACH ROW EXECUTEFUNCTION view_trigger('instead_of_upd')
11411141

11421142
DROP VIEW main_view;
11431143
--

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp