Wiki / Protocol Messages / Frontend messages
Parse
Parse is a frontend protocol message. Identifies the message as a Parse command.
Reading PostgreSQL 18.6.
Description
Parse is a frontend protocol message. Identifies the message as a Parse command.
- Direction
- Frontend → backend
- First wire field
- Byte1('P')
- Field entries
- 6
- Documented flow contexts
- Extended Query
Usage
Parse (F)Framing and repetition
The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.
Wire fields in documented order
| Position | Format | Meaning |
|---|---|---|
| 1 | Byte1('P') | Identifies the message as a Parse command. |
| 2 | Int32 | Length of message contents in bytes, including self. |
| 3 | String | The name of the destination prepared statement (an empty string selects the unnamed prepared statement). |
| 4 | String | The query string to be parsed. |
| 5 | Int16 | The number of parameter data types specified (can be zero). Note that this is not an indication of the number of parameters that might appear in the query string, only the number that the frontend wants to prespecify types for. |
| 6 | Int32 | Specifies the object ID of the parameter data type. Placing a zero here is equivalent to leaving the type unspecified. |
Manual definition
-
- Byte1('P')
-
Identifies the message as a Parse command.
- Int32
-
Length of message contents in bytes, including self.
- String
-
The name of the destination prepared statement (an empty string selects the unnamed prepared statement).
- String
-
The query string to be parsed.
- Int16
-
The number of parameter data types specified (can be zero). Note that this is not an indication of the number of parameters that might appear in the query string, only the number that the frontend wants to prespecify types for.
Then, for each parameter, there is the following:
- Int32
-
Specifies the object ID of the parameter data type. Placing a zero here is equivalent to leaving the type unspecified.
Related entries
Documentation and source
Source build
- Version
- 18.6
- Build
- https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- Source fingerprint
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
Compare versions
PostgreSQL 17 → 18: unchanged.
Compares recorded interfaces and attributes. Source fingerprints and build metadata are excluded; an absent sample is not proof of the introduction or removal release.
Related entries
Export JSON · Back to Protocol Messages · Recorded in PostgreSQL 10 through 20; the first sample is not necessarily its introduction.