Promote assertion about !ReindexIsProcessingIndex to runtime error.
commitf5a465f1a07474f380b54073a518602b342a188b
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)
treef71d7c53409fad24f1c047e549a89feabb9cbdd5
parent57b28c08305a7696375eae9a0a26532f8fb84d1b
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