↑↓ select↵ open⌫ change scopeOpen full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / Protocol Messages

Relation (logical replication)

Logical replication Relation format. Identifies the message as a relation message.

Reading PG 18·Select a recorded version

Layer
Logical replication payload; distinct from the frontend/backend message envelope
First field
Byte1('R')
manual path
/docs/18/protocol-logicalrep-message-formats.html
signature
Relation

Definition PG 18

Byte1('R')

Identifies the message as a relation message.

Int32 (TransactionId)

Xid of the transaction (only present for streamed transactions). This field is available since protocol version 2.

Int32 (Oid)

OID of the relation.

String

Namespace (empty string for pg_catalog).

String

Relation name.

Int8

Replica identity setting for the relation (same as relreplident in pg_class).

Int16

Number of columns.

Next, the following message part appears for each column included in the publication:

Int8

Flags for the column. Currently can be either 0 for no flags or 1 which marks the column as part of the key.

String

Name of the column.

Int32 (Oid)

OID of the column's data type.

Int32

Type modifier of the column (atttypmod).

Fields in documented order

PositionFormatMeaning
1Byte1('R')Identifies the message as a relation message.
2Int32 (TransactionId)Xid of the transaction (only present for streamed transactions). This field is available since protocol version 2.
3Int32 (Oid)OID of the relation.
4StringNamespace (empty string for pg_catalog ).
5StringRelation name.
6Int8Replica identity setting for the relation (same as relreplident in pg_class ).
7Int16Number of columns.
8Int8Flags for the column. Currently can be either 0 for no flags or 1 which marks the column as part of the key.
9StringName of the column.
10Int32 (Oid)OID of the column's data type.
11Int32Type modifier of the column ( atttypmod ).

Compare versions

Complete source facts

fields

map[description:Identifies the message as a relation message. format:Byte1('R')], map[description:Xid of the transaction (only present for streamed transactions). This field is available since protocol version 2. format:Int32 (TransactionId)], map[description:OID of the relation. format:Int32 (Oid)], map[description:Namespace (empty string for pg_catalog ). format:String], map[description:Relation name. format:String], map[description:Replica identity setting for the relation (same as relreplident in pg_class ). format:Int8], map[description:Number of columns. format:Int16], map[description:Flags for the column. Currently can be either 0 for no flags or 1 which marks the column as part of the key. format:Int8], map[description:Name of the column. format:String], map[description:OID of the column's data type. format:Int32 (Oid)], map[description:Type modifier of the column ( atttypmod ). format:Int32]

Source references

Full definition and evidence JSON

Definition sources

center · PostgreSQL 18 · 555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

Text language: en · 555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f