summaryrefslogtreecommitdiff
path: root/src/backend/commands/functioncmds.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/functioncmds.c')
-rw-r--r--src/backend/commands/functioncmds.c16
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()))