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:46 -0400 | 
| commit | f994bf965d369124ab18d8504668db2787173fb9 (patch) | |
| tree | 48a05ddc4f5b791725e34c3cbe2e34695351aac1 | |
| parent | b07de20ae6231e7e8b981de096d713a9c9e570e0 (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.
| -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 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); | 
