From: Tom Lane <tgl@sss.pgh.pa.us> Date: Mon, 3 Oct 2011 16:13:15 +0000 (-0400) Subject: ProcedureCreate neglected to record dependencies on default expressions. X-Git-Tag: REL9_0_6~49 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f994bf965d369124ab18d8504668db2787173fb9;p=postgresql 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. --- diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c index f60cc6106a..751f4c8cff 100644 --- a/src/backend/catalog/pg_proc.c +++ b/src/backend/catalog/pg_proc.c @@ -597,6 +597,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);