Promote assertion about !ReindexIsProcessingIndex to runtime error.
commitc0b4dad38e84d4b5f25391b97f0d51b66eb020f2
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 25 Feb 2024 21:15:07 +0000 (25 16:15 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 25 Feb 2024 21:15:07 +0000 (25 16:15 -0500)
treeb3ecaae5757b48465b28ba84477862732e6d6295
parent10f30873ddaf6984ebf5a87305fab0f4ae8f70c2
Promote assertion about !ReindexIsProcessingIndex to runtime error.

When this assertion was installed (in commit d2f60a3ab), I thought
it was only for catching server logic errors that caused accesses to
catalogs that were undergoing index rebuilds.  However, it will also
fire in case of a user-defined index expression that attempts to
access its own table.  We occasionally see reports of people trying
to do that, and typically getting unintelligible low-level errors
as a result.  We can provide a more on-point message by making this
a regular runtime check.

While at it, adjust the similar error check in
systable_beginscan_ordered to use the same message text.  That one
is (probably) not reachable without a coding bug, but we might as
well use a translatable message if we have one.

Per bug #18363 from Alexander Lakhin.  Back-patch to all supported
branches.

Discussion: https://postgr.es/m/18363-e3598a5a572d0699@postgresql.org
src/backend/access/index/genam.c
src/backend/access/index/indexam.c