Re: drop table if exists ; - Mailing list pgsql-general

From Craig Ringer
Subject Re: drop table if exists ;
Date
Msg-id 5059BCF4.9000908@ringerc.id.au
Whole thread Raw
In response to drop table if exists ;  ("Marc Mamin" <M.Mamin@intershop.de>)
List pgsql-general
On 09/19/2012 07:54 PM, Marc Mamin wrote:
> hello,
>
> I've found a small logical issue while writing a migration script:
>
> create table vtest (foo int);
>
> create view vtest_v as select * from vtest;
>
> drop table  if exists vtest_v;
>
> ERROR:  "vtest_v" is not a table
>
> drop view  if exists vtest;
>
> ERROR:  "vtest" is not a view
>
> this may be seen as a nice hint, but in my own opinion
>
> DROP ... IF EXISTS should not throw an error for objects that do not exist.

... but they do exist. There is another object with that name. It isn't
clear if the script author's intention is to DROP the object despite the
type mismatch, or to ignore it because it's not the type of object they
specified to drop.

When something is ambiguous or unclear, PostgreSQL will tend to report
an error for safety.

--
Craig Ringer


pgsql-general by date:

Previous
From: Craig Ringer
Date:
Subject: Re: RFE: Column aliases in WHERE clauses
Next
From: Rafal Pietrak
Date:
Subject: Re: RFE: Column aliases in WHERE clauses