Re: BUG #7543: Invalid table alias: DELETE FROM table *

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #7543: Invalid table alias: DELETE FROM table *
Дата
Msg-id 5536.1347854286@sss.pgh.pa.us
обсуждение исходный текст
Ответ на BUG #7543: Invalid table alias: DELETE FROM table *  (barrybrown@sierracollege.edu)
Ответы Re: [DOCS] BUG #7543: Invalid table alias: DELETE FROM table *  (Bruce Momjian <bruce@momjian.us>)
Список pgsql-bugs
barrybrown@sierracollege.edu writes:
> I sometime see my users delete all rows from a table using a command like
> this:

> DELETE FROM customer *;

> The question is: what is the star? Is it a table alias or an
> output_expression?

Neither; it specifies to search the table and its inheritance children,
ie, the opposite of ONLY.  This has been the default behavior (unless
you change the setting of sql_inheritance) for many years, so "*" has
largely fallen into disuse; but it's still accepted.

However ... I went looking for documentation on this point, and I'm
darned if I can find any.  There certainly used to be some, but
apparently somebody got over-eager about editing the docs to reflect
the modern default behavior.  The "*" doesn't even appear in the syntax
summaries for most of the commands where it's allowed, which is flat
wrong --- anywhere you can write "ONLY tablename", it's valid to write
"tablename*" instead.

So we have some docs work to do.  Thanks for pointing it out.

            regards, tom lane


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

Предыдущее
От: sharkke.w@gmail.com
Дата:
Сообщение: BUG #7544: cmd, chcp 65001, show client_encoding, get "not enough memory" error
Следующее
От: Craig Ringer
Дата:
Сообщение: Re: BUG #7526: An error occured executing the Microsoft VC++ runtime installer