aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2018-08-15 23:08:34 +0200
committerPeter Eisentraut <peter_e@gmx.net>2018-08-22 14:44:49 +0200
commit0a63f996e018ac508c858e87fa39cc254a5db49f (patch)
tree38598534b4cadc3f3f56e9049b7ca0daa4a339d2 /src
parentd12782898eb5979bef3c6dd0d80b93d1aaf53cac (diff)
downloadpostgresql-0a63f996e018ac508c858e87fa39cc254a5db49f.tar.gz
postgresql-0a63f996e018ac508c858e87fa39cc254a5db49f.zip
Change PROCEDURE to FUNCTION in CREATE TRIGGER syntax
Since procedures are now a different thing from functions, change the CREATE TRIGGER and CREATE EVENT TRIGGER syntax to use FUNCTION in the clause that specifies the function. PROCEDURE is still accepted for compatibility. pg_dump and ruleutils.c output is not changed yet, because that would require a change in information_schema.sql and thus a catversion change. Reported-by: Peter Geoghegan <pg@bowt.ie> Reviewed-by: Jonathan S. Katz <jonathan.katz@excoventures.com>
Diffstat (limited to 'src')
-rw-r--r--src/backend/parser/gram.y9
-rw-r--r--src/test/regress/expected/triggers.out4
-rw-r--r--src/test/regress/sql/triggers.sql4
3 files changed, 11 insertions, 6 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 87f5e958276..4bd2223f267 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -5344,7 +5344,7 @@ CreateAmStmt: CREATE ACCESS METHOD name TYPE_P INDEX HANDLER handler_name
CreateTrigStmt:
CREATE TRIGGER name TriggerActionTime TriggerEvents ON
qualified_name TriggerReferencing TriggerForSpec TriggerWhen
- EXECUTE PROCEDURE func_name '(' TriggerFuncArgs ')'
+ EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')'
{
CreateTrigStmt *n = makeNode(CreateTrigStmt);
n->trigname = $3;
@@ -5366,7 +5366,7 @@ CreateTrigStmt:
| CREATE CONSTRAINT TRIGGER name AFTER TriggerEvents ON
qualified_name OptConstrFromTable ConstraintAttributeSpec
FOR EACH ROW TriggerWhen
- EXECUTE PROCEDURE func_name '(' TriggerFuncArgs ')'
+ EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')'
{
CreateTrigStmt *n = makeNode(CreateTrigStmt);
n->trigname = $4;
@@ -5504,6 +5504,11 @@ TriggerWhen:
| /*EMPTY*/ { $$ = NULL; }
;
+FUNCTION_or_PROCEDURE:
+ FUNCTION
+ | PROCEDURE
+ ;
+
TriggerFuncArgs:
TriggerFuncArg { $$ = list_make1($1); }
| TriggerFuncArgs ',' TriggerFuncArg { $$ = lappend($1, $3); }
diff --git a/src/test/regress/expected/triggers.out b/src/test/regress/expected/triggers.out
index e57c6e1c42d..7d59de98ebd 100644
--- a/src/test/regress/expected/triggers.out
+++ b/src/test/regress/expected/triggers.out
@@ -22,12 +22,12 @@ create unique index pkeys_i on pkeys (pkey1, pkey2);
create trigger check_fkeys_pkey_exist
before insert or update on fkeys
for each row
- execute procedure
+ execute function
check_primary_key ('fkey1', 'fkey2', 'pkeys', 'pkey1', 'pkey2');
create trigger check_fkeys_pkey2_exist
before insert or update on fkeys
for each row
- execute procedure check_primary_key ('fkey3', 'fkeys2', 'pkey23');
+ execute function check_primary_key ('fkey3', 'fkeys2', 'pkey23');
--
-- For fkeys2:
-- (fkey21, fkey22) --> pkeys (pkey1, pkey2)
diff --git a/src/test/regress/sql/triggers.sql b/src/test/regress/sql/triggers.sql
index 1250cd63e02..d7dfd753be2 100644
--- a/src/test/regress/sql/triggers.sql
+++ b/src/test/regress/sql/triggers.sql
@@ -26,13 +26,13 @@ create unique index pkeys_i on pkeys (pkey1, pkey2);
create trigger check_fkeys_pkey_exist
before insert or update on fkeys
for each row
- execute procedure
+ execute function
check_primary_key ('fkey1', 'fkey2', 'pkeys', 'pkey1', 'pkey2');
create trigger check_fkeys_pkey2_exist
before insert or update on fkeys
for each row
- execute procedure check_primary_key ('fkey3', 'fkeys2', 'pkey23');
+ execute function check_primary_key ('fkey3', 'fkeys2', 'pkey23');
--
-- For fkeys2: