From 50af47f12bb8218625b7095da1d5678a1da8e9c2 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 3 Oct 2011 12:13:15 -0400 Subject: [PATCH] ProcedureCreate neglected to record dependencies on default expressions. Thus, an object referenced in a default expression could be dropped while the function remained present. This was unaccountably missed in the original patch to add default parameters for functions. Reported by Pavel Stehule. --- src/backend/catalog/pg_proc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c index fc0fc3c54a..f84bfe4f6a 100644 --- a/src/backend/catalog/pg_proc.c +++ b/src/backend/catalog/pg_proc.c @@ -545,6 +545,11 @@ ProcedureCreate(const char *procedureName, recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); } + /* dependency on parameter default expressions */ + if (parameterDefaults) + recordDependencyOnExpr(&myself, (Node *) parameterDefaults, + NIL, DEPENDENCY_NORMAL); + /* dependency on owner */ if (!is_update) recordDependencyOnOwner(ProcedureRelationId, retval, proowner); -- 2.50.0