diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2011-10-03 12:13:15 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2011-10-03 12:13:53 -0400 |
commit | 50af47f12bb8218625b7095da1d5678a1da8e9c2 (patch) | |
tree | 4ab278d783d9bba82c79e65814cba0c38752541d /src | |
parent | 3e17a0020b0a896ecfa4aa06b140bbb21b23eb83 (diff) |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/catalog/pg_proc.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c index fc0fc3c54af..f84bfe4f6ab 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); |