Improve SQLSTATE reporting in some replication-related code.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 16 Jun 2021 15:52:05 +0000 (11:52 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 16 Jun 2021 15:52:05 +0000 (11:52 -0400)
commit6b787d9e32005867ee3660d1ea20f447810a403d
treeba42afc0950af8d974a174e1bfff32f89ee74fb4
parentd0303bc8d2670d11c9df9220aa08a2c33529e100
Improve SQLSTATE reporting in some replication-related code.

I started out with the goal of reporting ERRCODE_CONNECTION_FAILURE
when walrcv_connect() fails, but as I looked around I realized that
whoever wrote this code was of the opinion that errcodes are purely
optional.  That's not my understanding of our project policy.  Hence,
make sure that an errcode is provided in each ereport that (a) is
ERROR or higher level and (b) isn't arguably an internal logic error.
Also fix some very dubious existing errcode assignments.

While this is not per policy, it's also largely cosmetic, since few
of these cases could get reported to applications.  So I don't
feel a need to back-patch.

Discussion: https://postgr.es/m/2189704.1623512522@sss.pgh.pa.us
src/backend/commands/subscriptioncmds.c
src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
src/backend/replication/logical/tablesync.c
src/backend/replication/logical/worker.c
src/backend/replication/walreceiver.c