aio: Add WARNING result status
authorAndres Freund <andres@anarazel.de>
Sun, 30 Mar 2025 20:10:51 +0000 (16:10 -0400)
committerAndres Freund <andres@anarazel.de>
Sun, 30 Mar 2025 20:27:10 +0000 (16:27 -0400)
commitef64fe26bad92a7b8425767cdbbe8b946d4637f0
treea76ed73de21d69f9e24fe590e6b207ddfd2b31a9
parentd445990adc419f435360f0dcd91c05c082f5fa3f
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
src/backend/storage/aio/aio.c
src/backend/storage/aio/aio_callback.c
src/include/storage/aio.h
src/include/storage/aio_types.h