pgsql: Improve error reporting for DROPFUNCTION/PROCEDURE/AGGREGATE/RO
От | Tom Lane |
---|---|
Тема | pgsql: Improve error reporting for DROPFUNCTION/PROCEDURE/AGGREGATE/RO |
Дата | |
Msg-id | E1h6zzT-0003ft-DD@gemulon.postgresql.org обсуждение исходный текст |
Ответы |
Re: pgsql: Improve error reporting for DROPFUNCTION/PROCEDURE/AGGREGATE/RO
|
Список | pgsql-committers |
Improve error reporting for DROP FUNCTION/PROCEDURE/AGGREGATE/ROUTINE. These commands allow the argument type list to be omitted if there is just one object that matches by name. However, if that syntax was used with DROP IF EXISTS and there was more than one match, you got a "function ... does not exist, skipping" notice message rather than a truthful complaint about the ambiguity. This was basically due to poor factorization and a rats-nest of logic, so refactor the relevant lookup code to make it cleaner. Note that this amounts to narrowing the scope of which sorts of error conditions IF EXISTS will bypass. Per discussion, we only intend it to skip no-such-object cases, not multiple-possible-matches cases. Per bug #15572 from Ash Marath. Although this definitely seems like a bug, it's not clear that people would thank us for changing the behavior in minor releases, so no back-patch. David Rowley, reviewed by Julien Rouhaud and Pavel Stehule Discussion: https://postgr.es/m/15572-ed1b9ed09503de8a@postgresql.org Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/bfb456c1b9656d5b717b84d833f62cf712b21726 Modified Files -------------- src/backend/parser/parse_func.c | 396 ++++++++++++++++++--------- src/include/parser/parse_func.h | 4 +- src/test/regress/expected/drop_if_exists.out | 29 ++ src/test/regress/sql/drop_if_exists.sql | 24 ++ 4 files changed, 328 insertions(+), 125 deletions(-)
В списке pgsql-committers по дате отправления: