Re: BUG #16492: DROP VIEW IF EXISTS error

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Nina Marlow <postgresql(dot)2020(at)t-net(dot)ruhr>
Cc: PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: BUG #16492: DROP VIEW IF EXISTS error
Date: 2020-06-15 07:16:50
Message-ID: CAFj8pRCYpHMcFa2=EUyv8Zh6ENFXCyGHJ+qnsMDe4kvm2R9q_w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

po 15. 6. 2020 v 8:51 odesílatel Nina Marlow <postgresql(dot)2020(at)t-net(dot)ruhr>
napsal:

> > the most likely effect of such a change is that we fix no scripts, while
> > breaking any scripts that were dependent on the existing behavior.
>
> As the documentation seems to always have said that "IF EXISTS" doesn't
> raise an error, there's no script that could get broken.
>
> On the other side, currently I currently don't see a way of dropping a
> view or table without knowing its exact type.
>
> So to drop a *view*, I need to be sure that there is no *table* with the
> same name. I have to check that first before using DROP. But that makes IF
> EXISTS more or less useless because I might just as well check whether the
> view exists and depending on the result either do a DROP or not.
>

It is harder when you introduce schemas and search_path.

We know so in one schema there cannot be view and table with same name, but
you can have more schemas on search_path

So the behaviour can be little bit different if you use qualified name or
not

> > What I'd prefer to see, I think, is a command DROP RELATION [IF EXISTS]
>
> If the already implemented DROPs behaved as documented, you'd not need an
> additional third statement. It'd be just identical to
>
> DROP TABLE IF EXISTS
> DROP VIEW IF EXISTS
>
>
>
>

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Sandeep Thakkar 2020-06-15 07:26:19 Re: BUG #16460: Error when executing REFRESH MATERIALIZED VIEW WITH DATA;
Previous Message Pavel Stehule 2020-06-15 07:11:18 Re: BUG #16494: cant use row['field name']