Wiki / Protocol Messages / Backend messages
DataRow
DataRow is a backend protocol message. Identifies the message as a data row.
Reading PostgreSQL 18.6.
Description
DataRow is a backend protocol message. Identifies the message as a data row.
- Direction
- Backend → frontend
- First wire field
- Byte1('D')
- Field entries
- 5
- Documented flow contexts
- Simple Query
Usage
DataRow (B)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('D') | Identifies the message as a data row. |
| 2 | Int32 | Length of message contents in bytes, including self. |
| 3 | Int16 | The number of column values that follow (possibly zero). |
| 4 | Int32 | The length of the column value, in bytes (this count does not include itself). Can be zero. As a special case, -1 indicates a NULL column value. No value bytes follow in the NULL case. |
| 5 | Byte n | The value of the column, in the format indicated by the associated format code. n is the above length. |
Manual definition
-
- Byte1('D')
-
Identifies the message as a data row.
- Int32
-
Length of message contents in bytes, including self.
- Int16
-
The number of column values that follow (possibly zero).
Next, the following pair of fields appear for each column:
- Int32
-
The length of the column value, in bytes (this count does not include itself). Can be zero. As a special case, -1 indicates a NULL column value. No value bytes follow in the NULL case.
- Byte
n -
The value of the column, in the format indicated by the associated format code.
nis the above length.
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.