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 /src | |
| 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.
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 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); | 
