Thread: pgsql: aio: Add WARNING result status

pgsql: aio: Add WARNING result status

From
Andres Freund
Date:
aio: Add WARNING result status

If an IO succeeds, but issues a warning, e.g. due to a page verification
failure with zero_damaged_pages, we want to issue that warning in the context
of the issuer of the IO, not the process that executes the completion (always
the case for worker).

It's already possible for a completion callback to report a custom error
message, we just didn't have a result status that allowed a user of AIO to
know that a warning should be emitted even though the IO request succeeded.

All that's needed for that is a dedicated PGAIO_RS_ value.

Previously there were not enough bits in PgAioResult.id for the new
value. Increase. While at that, add defines for the amount of bits and static
asserts to check that the widths are appropriate.

Reviewed-by: Noah Misch <noah@leadboat.com>
Discussion: https://postgr.es/m/20250329212929.a6.nmisch@google.com

Branch
------
master

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

Modified Files
--------------
src/backend/storage/aio/aio.c          |  2 ++
src/backend/storage/aio/aio_callback.c |  1 +
src/include/storage/aio.h              |  6 +++++-
src/include/storage/aio_types.h        | 26 +++++++++++++++++++++-----
4 files changed, 29 insertions(+), 6 deletions(-)