pg_aios — PostgreSQL system view

The PostgreSQL pg_aios system view: full column reference (names, types, descriptions), catalog relationships and version support.

Summary

The pg_aios view lists all glossary_aio handles that are currently in-use. An I/O handle is used to reference an I/O operation that is being prepared, executed or is in the process of completing. pg_aios contains one row for each I/O handle.

(Description quoted from the official PostgreSQL documentation.)

Columns

The pg_aios system view exposes the following columns (names, types and descriptions are taken verbatim from the PostgreSQL documentation):

  • pid int4
    Process ID of the server process that is issuing this I/O.
  • io_id int4
    Identifier of the I/O handle. Handles are reused once the I/O completed (or if the handle is released before I/O is started). On reuse pg_aios.io_generation is incremented.
  • state text
    State of the I/O handle: HANDED_OUT, referenced by code but not yet used DEFINED, information necessary for execution is known STAGED, ready for execution SUBMITTED, submitted for execution COMPLETED_IO, finished, but result has not yet been processed COMPLETED_SHARED, shared completion processing completed COMPLETED_LOCAL, backend local completion processing completed
  • operation text
    Operation performed using the I/O handle: invalid, not yet known readv, a vectored read writev, a vectored write
  • off int8
    Offset of the I/O operation.
  • length int8
    Length of the I/O operation.
  • target text
    What kind of object is the I/O targeting: smgr, I/O on relations
  • handle_data_len int2
    Length of the data associated with the I/O operation. For I/O to/from shared_buffers and temp_buffers, this indicates the number of buffers the I/O is operating on.
  • raw_result int4
    Low-level result of the I/O operation, or NULL if the operation has not yet completed.
  • result text
    High-level result of the I/O operation: UNKNOWN means that the result of the operation is not yet known. OK means the I/O completed successfully. PARTIAL means that the I/O completed without error, but did not process all data. Commonly callers will need to retry and perform the remainder of the work in a separate I/O. WARNING means that the I/O completed without error, but that execution of the IO triggered a warning. E.g. when encountering a corrupted buffer with zero_damaged_pages enabled. ERROR means the I/O failed with an error.
  • target_desc text
    Description of what the I/O operation is targeting.
  • f_sync bool
    Flag indicating whether the I/O is executed synchronously.
  • f_localmem bool
    Flag indicating whether the I/O references process local memory.
  • f_buffered bool
    Flag indicating whether the I/O is buffered I/O.

Version applicability

Present in PostgreSQL 18, 19 (verified against each release’s documentation). This object was introduced in PostgreSQL 18.

Related & references

Reference: PostgreSQL documentation — pg_aios.