From bbcd01692bff099117f5afb0fe2d1ad182621766 Mon Sep 17 00:00:00 2001 From: Andrew Dunstan Date: Fri, 16 Jun 2006 20:23:45 +0000 Subject: DROP ... IF EXISTS for the following cases: language, tablespace, trigger, rule, opclass, function, aggregate. operator, and cast. --- src/backend/commands/aggregatecmds.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/backend/commands/aggregatecmds.c') diff --git a/src/backend/commands/aggregatecmds.c b/src/backend/commands/aggregatecmds.c index 7b954edd381..7fb323a8b87 100644 --- a/src/backend/commands/aggregatecmds.c +++ b/src/backend/commands/aggregatecmds.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/aggregatecmds.c,v 1.34 2006/04/15 17:45:33 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/commands/aggregatecmds.c,v 1.35 2006/06/16 20:23:44 adunstan Exp $ * * DESCRIPTION * The "DefineFoo" routines take the parse tree and pick out the @@ -211,7 +211,21 @@ RemoveAggregate(RemoveFuncStmt *stmt) ObjectAddress object; /* Look up function and make sure it's an aggregate */ - procOid = LookupAggNameTypeNames(aggName, aggArgs, false); + procOid = LookupAggNameTypeNames(aggName, aggArgs, stmt->missing_ok); + + if (!OidIsValid(procOid)) + { + /* we only get here if stmt->missing_ok is true */ + + /* XXX might need better message here */ + + ereport(NOTICE, + (errmsg("aggregate %s does not exist ... skipping", + stmt->name))); + + + return; + } /* * Find the function tuple, do permissions and validity checks -- cgit v1.2.3