pgsql: Make DROP IF EXISTS more consistently not fail

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Make DROP IF EXISTS more consistently not fail
Date: 2014-01-23 17:42:24
Message-ID: E1W6OIK-0005os-J2@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Make DROP IF EXISTS more consistently not fail

Some cases were still reporting errors and aborting, instead of a NOTICE
that the object was being skipped. This makes it more difficult to
cleanly handle pg_dump --clean, so change that to instead skip missing
objects properly.

Per bug #7873 reported by Dave Rolsky; apparently this affects a large
number of users.

Authors: Pavel Stehule and Dean Rasheed. Some tweaks by Álvaro Herrera

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/b152c6cd0de1827ba58756e24e18110cf902182a

Modified Files
--------------
src/backend/catalog/namespace.c | 45 +++--
src/backend/catalog/objectaddress.c | 46 +++--
src/backend/commands/dropcmds.c | 258 +++++++++++++++++++++-----
src/backend/commands/functioncmds.c | 4 +-
src/backend/commands/opclasscmds.c | 26 ++-
src/backend/commands/tablecmds.c | 26 ++-
src/backend/commands/typecmds.c | 2 +-
src/backend/parser/parse_func.c | 32 +---
src/backend/parser/parse_oper.c | 4 +-
src/backend/parser/parse_type.c | 88 +++++++--
src/backend/utils/adt/regproc.c | 6 +-
src/include/catalog/namespace.h | 3 +-
src/include/parser/parse_type.h | 4 +-
src/pl/plpgsql/src/pl_comp.c | 2 +-
src/test/regress/expected/drop_if_exists.out | 79 +++++++-
src/test/regress/expected/event_trigger.out | 2 +-
src/test/regress/sql/drop_if_exists.sql | 41 ++++
17 files changed, 523 insertions(+), 145 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Stefan Kaltenbrunner 2014-01-23 19:18:14 Re: [COMMITTERS] pgsql: Compress GIN posting lists, for smaller index size.
Previous Message Fujii Masao 2014-01-23 17:32:48 pgsql: Add libpq function PQhostaddr().