Improve and fix some error handling for REINDEX INDEX/TABLE CONCURRENTLY

Michael Paquier <michael@paquier.xyz>

Commit: 508300e2e141a9fd87758ce01374c5b0597986fd
Author: Michael Paquier <michael@paquier.xyz>
Date: 2019-05-09T23:18:46Z
Releases: 12.0
Improve and fix some error handling for REINDEX INDEX/TABLE CONCURRENTLY

This improves the user experience when it comes to restrict several
flavors of REINDEX CONCURRENTLY.  First, for INDEX, remove a restriction
on shared relations as we already check after catalog relations.  Then,
for TABLE, add a proper error message when attempting to run the command
on system catalogs.  The code path of CREATE INDEX CONCURRENTLY already
complains about that, but if a REINDEX is issued then then the error
generated is confusing.

While on it, add more tests to check restrictions on catalog indexes and
on toast table/index for catalogs.  Some error messages are improved,
with wording suggestion coming from Tom Lane.

Reported-by: Tom Lane
Author: Michael Paquier
Reviewed-by: Tom Lane
Discussion: https://postgr.es/m/23694.1556806002@sss.pgh.pa.us

Files

Discussion