Postgres packets
All communication between Postgres clients and servers are through discrete packets. Some packet types can be sent by the client to the server, others by the server to the client, and a few can be sent from either side.
For full details, consult the Postgres documentation.
Request packets
Bind : binds a prepared statement to a set of parameter values
CancelRequest : sent to request the cancellation of an ongoing query
Close : closes a prepared statement or cursor/portal
Describe : asks for the description of a prepared statement or cursor/portal
Execute : requests the execution of a given portal/cursor
Flush : asks the server to send any remaining data
FunctionCall : asks the server to execute the specified function
Parse : asks the server to set up a prepared statement
Query : execute a SQL command or query directly
StartupMessage: the first packet sent by the database client, includes the user name but no credentials.
Sync : asks the server to send any remaining or buffered data
Terminate : notify the server that the client is about to disconnect
Response packets
AuthenticationRequest : sent by the server to challenge the client for authentication
BackendKeyData : contains information to cancel a request
BindComplete : indicates that a Bind command has completed successfully
CloseComplete : indicates that a Close command has completed successfuly
CommandComplete : sent after a command or query has finished executing
DataRow : represents one row in a result set
DataRowBatch : one or more rows in a result set
EmptyQueryResponse : sent when a query has no results
ErrorResponse : sent when the server has encountered an error
FunctionCallResponse : returns the result of a function call
NegociateProtocolVersion ; sent when the server requests a different protocol version, or to signal it cannot support certain options
NoData : sent by the server to indicate that a prepared statement will not return any rows
NoticeResponse : notifies the client of non-fatal warnings
NotificationResponse : used for asynchronous operations
ParameterDescription : returns the data types of the parameters required for a prepared statement
ParameterStatus : notifies the client that a system parameter has a new value
ParseComplete : indicates that a prepared statement is ready
PortalSuspended : indicates incomplete execution of a prepared statement
ReadyForQuery : indicates that the server is ready for the next request
RowDescription : describes the makeup of a result set
Environment
All filters can expect the following variables to be defined:
context.packet: the current packet
context.connectionContext: the context for the current database connection
context.connectionContext.userName: the name of the current database user (only available after login)
context.connectionContext.databaseName: the name of the default database currently in use
context.connectionContext.currentQuery: the last SQL command to be sent to the server
context.connectionContext.clientIP: the IP address of the database client as a string, can be either IP4 or IP6