Commit 76074fca authored by Tom Lane's avatar Tom Lane

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.
parent d56b3afc
...@@ -599,6 +599,11 @@ ProcedureCreate(const char *procedureName, ...@@ -599,6 +599,11 @@ ProcedureCreate(const char *procedureName,
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
} }
/* dependency on parameter default expressions */
if (parameterDefaults)
recordDependencyOnExpr(&myself, (Node *) parameterDefaults,
NIL, DEPENDENCY_NORMAL);
/* dependency on owner */ /* dependency on owner */
if (!is_update) if (!is_update)
recordDependencyOnOwner(ProcedureRelationId, retval, proowner); recordDependencyOnOwner(ProcedureRelationId, retval, proowner);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment