summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2011-10-03 12:13:15 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2011-10-03 12:13:46 -0400
commitf994bf965d369124ab18d8504668db2787173fb9 (patch)
tree48a05ddc4f5b791725e34c3cbe2e34695351aac1 /src
parentb07de20ae6231e7e8b981de096d713a9c9e570e0 (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.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index f60cc6106a7..751f4c8cff9 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);