Add callback for I/O error messages in SLRUs

Historically, all SLRUs were addressed by transaction IDs, but that
hasn't been true for a long time. However, the error message on I/O
error still always talked about accessing a transaction ID.

This commit adds a callback that allows subsystems to construct their
own error messages, which can then correctly refer to a transaction
ID, multixid or whatever else is used to address the particular SLRU.

Author: Maxim Orlov <[email protected]>
Reviewed-by: Álvaro Herrera <[email protected]>
Discussion: 
https://www.postgresql.org/message-id/CACG=ezzzfurhyv+66ceubxqaywqv9vaui0yoo4-t48oe5xc...@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/f9de9bf302d2df41da06c6377ba1904883cd9d51

Modified Files
--------------
src/backend/access/transam/clog.c                 | 17 +++--
src/backend/access/transam/commit_ts.c            | 13 +++-
src/backend/access/transam/multixact.c            | 65 ++++++++++++++-----
src/backend/access/transam/slru.c                 | 79 ++++++++++++-----------
src/backend/access/transam/subtrans.c             | 14 +++-
src/backend/commands/async.c                      | 20 ++++--
src/backend/storage/lmgr/predicate.c              | 14 +++-
src/include/access/slru.h                         | 15 ++++-
src/test/modules/test_slru/expected/test_slru.out |  4 ++
src/test/modules/test_slru/sql/test_slru.sql      |  3 +
src/test/modules/test_slru/test_slru--1.0.sql     |  2 +-
src/test/modules/test_slru/test_slru.c            | 15 ++++-
src/tools/pgindent/typedefs.list                  |  1 +
13 files changed, 187 insertions(+), 75 deletions(-)

Reply via email to