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:40 -0400 |
commit | b733331d0fe0ecb36aa629f187876734da25ea80 (patch) | |
tree | e1a2b8b46d15b11bd91432ec6fe3f41befb259a5 | |
parent | 96a263f885729aeaaedbe3f1ed8e3cc6f7cd1211 (diff) | |
download | postgresql-b733331d0fe0ecb36aa629f187876734da25ea80.tar.gz postgresql-b733331d0fe0ecb36aa629f187876734da25ea80.zip |
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.
-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 18a2c1a3c08..72559daf549 100644 --- a/src/backend/catalog/pg_proc.c +++ b/src/backend/catalog/pg_proc.c @@ -598,6 +598,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); |