Unexpected behavior of DROP VIEW/TABLE IF EXISTS

Поиск
Список
Период
Сортировка
От David G. Johnston
Тема Unexpected behavior of DROP VIEW/TABLE IF EXISTS
Дата
Msg-id CAKFQuwbzQ9u_pkuvgBJqLrH8LkM_NDRV6Exaxmhx6H9qZtmwjQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Unexpected behavior of DROP VIEW/TABLE IF EXISTS  (Pavel Stehule <pavel.stehule@gmail.com>)
Ответы Re: Unexpected behavior of DROP VIEW/TABLE IF EXISTS  (Pavel Stehule <pavel.stehule@gmail.com>)
Список pgsql-hackers
On Tuesday, June 26, 2018, Pavel Stehule <pavel.stehule@gmail.com> wrote:
2018-06-26 17:23 GMT+02:00 Peter Moser <pitiz29a@gmail.com>:
Hi,
I want to delete a table X, that may not exist, hence I execute

        DROP TABLE IF EXISTS X;

However, if X is a view, I get an error

        ERROR: "X" is not a table
        HINT: Use DROP VIEW to remove a view.
        SQL state: 42809

That is unexpected and also difficult to handle

DROP TABLE should to remove table and nothing else, like DROP VIEW should to drop just view and nothing else. It is safeguard.

Peter isn't asking for drop table to drop a view though, he's asking for the documented behavior:

"Do not throw an error if the table does not exist. A notice is issued in this case."

There is no Table named X in the database so the command should be a noop with a notice.  I would concur, though I'm open to just fixing it in v12 and back patching a documentation bug fix stating the exception due to relations sharing a namespace but there be lacking a corresponding shared namespace "drop relation" command.

David J.

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: ssl_library parameter
Следующее
От: Robert Haas
Дата:
Сообщение: Re: "wal receiver" process hang in syslog() while exiting afterreceiving SIGTERM while the postgres has been promoted.