wrong relkind error messages

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема wrong relkind error messages
Дата
Msg-id dc35a398-37d0-75ce-07ea-1dd71d98f8ec@2ndquadrant.com
обсуждение исходный текст
Ответы Re: wrong relkind error messages
Re: wrong relkind error messages
Re: wrong relkind error messages
Список pgsql-hackers
I'm not a fan of error messages like

     relation "%s" is not a table, foreign table, or materialized view

It doesn't tell me what's wrong, it only tells me what else could have 
worked.  It's also tedious to maintain and the number of combinations 
grows over time.

This was discussed many years ago in [0], with the same arguments, and 
there appeared to have been general agreement to change this, but then 
the thread stalled somehow on some technical details.

Attached is another attempt to improve this.  I have rewritten the 
primary error messages using the principle of "cannot do this with that" 
and then added a detail message to show what relkind the object has. 
For example:

-ERROR:  relation "ti" is not a table, foreign table, or materialized view
+ERROR:  cannot define statistics for relation "ti"
+DETAIL:  "ti" is an index.

and

-ERROR:  "test_foreign_table" is not a table, materialized view, or 
TOAST table
+ERROR:  relation "test_foreign_table" does not have a visibility map
+DETAIL:  "test_foreign_table" is a foreign table.

You can see more instances of this in the test diffs in the attached patch.

In passing, I also changed a few places to use the RELKIND_HAS_STORAGE() 
macro.  This is related because it allows writing more helpful error 
messages, such as in pgstatindex.c.

One question on a detail arose:

check_relation_relkind() in pg_visibility.c accepts RELKIND_RELATION, 
RELKIND_MATVIEW, and RELKIND_TOASTVALUE, but pgstatapprox.c only accepts 
RELKIND_RELATION and RELKIND_MATVIEW, even though they both look for a 
visibility map.  Is that an intentional omission?  If so, it should be 
commented better.


[0]: 
https://www.postgresql.org/message-id/flat/AANLkTimR_sZ_wKd1cgqVG1PEvTvdr9j7zD%2B3_NPvfaa_%40mail.gmail.com

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Вложения

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: weird hash plan cost, starting with pg10
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: where should I stick that backup?