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/proclang.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/backend/commands/proclang.c') diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c index 801ccb13ec..e661d45239 100644 --- a/src/backend/commands/proclang.c +++ b/src/backend/commands/proclang.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/proclang.c,v 1.64 2006/03/05 15:58:24 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/commands/proclang.c,v 1.65 2006/06/16 20:23:44 adunstan Exp $ * *------------------------------------------------------------------------- */ @@ -396,9 +396,18 @@ DropProceduralLanguage(DropPLangStmt *stmt) CStringGetDatum(languageName), 0, 0, 0); if (!HeapTupleIsValid(langTup)) - ereport(ERROR, - (errcode(ERRCODE_UNDEFINED_OBJECT), - errmsg("language \"%s\" does not exist", languageName))); + { + if (! stmt->missing_ok) + ereport(ERROR, + (errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("language \"%s\" does not exist", languageName))); + else + ereport(NOTICE, + (errmsg("language \"%s\" does not exist ... skipping", + languageName))); + + return; + } object.classId = LanguageRelationId; object.objectId = HeapTupleGetOid(langTup); -- cgit v1.2.1