Typed, immutable representations of PostgreSQL backend (server → client) messages.
Every message isfrozen=True, slots=True— they are produced by the sans-I/O framer
(._framing) and handed cheaply between free-threaded workers; frozenness is the
thread-safety guarantee. ThePGMessageunion (PEP 695) is the single typed value the
framer returns. This module touches no socket and no anyio.
Only the message set pelt needs for the E1 spine + the extended-query protocol (epic E3) is modelled here; COPY and replication messages are out of scope.
data.drivers._pelt._messages
| Name | Type | Default | Description |
|---|---|---|---|
type
|
|
— | |
qualified_name
|
|
— | |
element_type
|
|
— | |
description
|
|
— | |
source_file
|
|
— | |
line_number
|
|
— | |
is_autodoc
|
|
— | |
autodoc_element
|
|
— | |
_autodoc_template
|
|
— | |
_autodoc_url_path
|
|
— | |
_autodoc_page_type
|
|
— | |
title
|
|
— | |
doc_content_hash
|
|
— |
Symbols on this page
AuthenticationOk— the server accepted the credentials.
The server wants a cleartext password.
The server wants an MD5-hashed password, salted withsalt.
The server offers SASL authentication with these mechanisms (e.g. SCRAM-SHA-256).
A SASL challenge from the server.
The final SASL message from the server.
A server runtime parameter report (tag'S'), e.g. server_version.
Cancellation key material (tag'K') — needed to cancel a running query.
The server is ready (tag'Z'). status is 'I' idle, 'T'in-transaction,
or'E'failed-transaction.
One column descriptor within aRowDescription.
The column layout of a result set (tag'T').
One result row (tag'D'). Each value is the raw wire bytes or Nonefor SQL NULL; decoding to Python objects happens later…
A command finished (tag'C'). tag is e.g. 'INSERT 0 1' / 'SELECT 5'.
Parameter OIDs for a prepared statement (tag't').
A server error (tag'E'). Fields are kept as (code, value)pairs to stay
hashable + frozen; the common ones are exposed as properties.
A non-fatal notice (tag'N'). Same structure as ErrorResponse.
An asyncNOTIFY payload (tag 'A') — drives LISTEN/NOTIFY (epic E5).
Tag'1'.
Tag'2'.
Tag'3'.
Tag'n'— a prepared statement returns no rows.
Tag's' — an Executerow limit was reached; more rows remain.
Tag'I'— the query string was empty.
AuthenticationOk
class
AuthenticationOk— the server accepted the credentials.
AuthenticationCleartextPassword
class
The server wants a cleartext password.
AuthenticationMD5Password
class
The server wants an MD5-hashed password, salted withsalt.
AuthenticationSASL
class
The server offers SASL authentication with these mechanisms (e.g. SCRAM-SHA-256).
AuthenticationSASLContinue
class
A SASL challenge from the server.
AuthenticationSASLFinal
class
The final SASL message from the server.
ParameterStatus
class
A server runtime parameter report (tag'S'), e.g. server_version.
BackendKeyData
class
Cancellation key material (tag'K') — needed to cancel a running query.
ReadyForQuery
class
The server is ready (tag'Z'). status is 'I' idle, 'T'in-transaction,
or'E'failed-transaction.
FieldDescription
class
One column descriptor within aRowDescription.
RowDescription
class
The column layout of a result set (tag'T').
DataRow
class
One result row (tag'D'). Each value is the raw wire bytes or Nonefor SQL NULL;
decoding to Python objects happens later via the codec plan (epic E2).
CommandComplete
class
A command finished (tag'C'). tag is e.g. 'INSERT 0 1' / 'SELECT 5'.
ParameterDescription
class
Parameter OIDs for a prepared statement (tag't').
ErrorResponse
class
A server error (tag'E'). Fields are kept as (code, value)pairs to stay
hashable + frozen; the common ones are exposed as properties.
NoticeResponse
class
A non-fatal notice (tag'N'). Same structure as ErrorResponse.
NotificationResponse
class
An asyncNOTIFY payload (tag 'A') — drives LISTEN/NOTIFY (epic E5).
ParseComplete
class
Tag'1'.
BindComplete
class
Tag'2'.
CloseComplete
class
Tag'3'.
NoData
class
Tag'n'— a prepared statement returns no rows.
PortalSuspended
class
Tag's' — an Executerow limit was reached; more rows remain.
EmptyQueryResponse
class
Tag'I'— the query string was empty.
View source · /home/runner/work/chirp/chirp/site/../src/chirp/data/drivers/_pelt/_messages.py:1