diff options
Diffstat (limited to 'src/backend/commands/functioncmds.c')
-rw-r--r-- | src/backend/commands/functioncmds.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c index 1da1cf66cb3..96929a0d6c4 100644 --- a/src/backend/commands/functioncmds.c +++ b/src/backend/commands/functioncmds.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.73 2006/03/14 22:48:18 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.74 2006/04/15 17:45:34 tgl Exp $ * * DESCRIPTION * These routines take the parse tree and pick out the @@ -678,7 +678,7 @@ CreateFunction(CreateFunctionStmt *stmt) void RemoveFunction(RemoveFuncStmt *stmt) { - List *functionName = stmt->funcname; + List *functionName = stmt->name; List *argTypes = stmt->args; /* list of TypeName nodes */ Oid funcOid; HeapTuple tup; @@ -1440,10 +1440,13 @@ DropCastById(Oid castOid) } /* - * Execute ALTER FUNCTION SET SCHEMA + * Execute ALTER FUNCTION/AGGREGATE SET SCHEMA + * + * These commands are identical except for the lookup procedure, so share code. */ void -AlterFunctionNamespace(List *name, List *argtypes, const char *newschema) +AlterFunctionNamespace(List *name, List *argtypes, bool isagg, + const char *newschema) { Oid procOid; Oid oldNspOid; @@ -1455,7 +1458,10 @@ AlterFunctionNamespace(List *name, List *argtypes, const char *newschema) procRel = heap_open(ProcedureRelationId, RowExclusiveLock); /* get function OID */ - procOid = LookupFuncNameTypeNames(name, argtypes, false); + if (isagg) + procOid = LookupAggNameTypeNames(name, argtypes, false); + else + procOid = LookupFuncNameTypeNames(name, argtypes, false); /* check permissions on function */ if (!pg_proc_ownercheck(procOid, GetUserId())) |