Home Explore Blog CI



postgresql

77th chunk of `doc/src/sgml/protocol.sgml`
39b50670d4948c166f974a41afaa14b88962c6b02ad1daac0000000100000fa2
    </variablelist>

     <para>
      Note that there can be multiple Origin messages inside a single transaction.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry id="protocol-logicalrep-message-formats-Relation">
    <term>Relation</term>
    <listitem>
     <variablelist>
      <varlistentry>
       <term>Byte1('R')</term>
       <listitem>
        <para>
         Identifies the message as a relation message.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32 (TransactionId)</term>
       <listitem>
        <para>
         Xid of the transaction (only present for streamed transactions).
         This field is available since protocol version 2.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32 (Oid)</term>
       <listitem>
        <para>
         OID of the relation.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>String</term>
       <listitem>
        <para>
         Namespace (empty string for <literal>pg_catalog</literal>).
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>String</term>
       <listitem>
        <para>
         Relation name.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int8</term>
       <listitem>
        <para>
         Replica identity setting for the relation (same as
         <structfield>relreplident</structfield> in <structname>pg_class</structname>).
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int16</term>
       <listitem>
        <para>
         Number of columns.
        </para>
       </listitem>
      </varlistentry>
     </variablelist>

     <para>
      Next, the following message part appears for each column included in
      the publication:
     </para>

     <variablelist>
      <varlistentry>
       <term>Int8</term>
       <listitem>
        <para>
         Flags for the column. Currently can be either 0 for no flags
         or 1 which marks the column as part of the key.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>String</term>
       <listitem>
        <para>
         Name of the column.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32 (Oid)</term>
       <listitem>
        <para>
         OID of the column's data type.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32</term>
       <listitem>
        <para>
         Type modifier of the column (<structfield>atttypmod</structfield>).
        </para>
       </listitem>
      </varlistentry>
     </variablelist>
    </listitem>
   </varlistentry>

   <varlistentry id="protocol-logicalrep-message-formats-Type">
    <term>Type</term>
    <listitem>
     <variablelist>
      <varlistentry>
       <term>Byte1('Y')</term>
       <listitem>
        <para>
         Identifies the message as a type message.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32 (TransactionId)</term>
       <listitem>
        <para>
         Xid of the transaction (only present for streamed transactions).
         This field is available since protocol version 2.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32 (Oid)</term>
       <listitem>
        <para>
         OID of the data type.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>String</term>
       <listitem>
        <para>
         Namespace (empty string for <literal>pg_catalog</literal>).
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>String</term>
       <listitem>
        <para>
         Name of the data type.
        </para>
       </listitem>
      </varlistentry>
     </variablelist>

Title: Logical Replication Message Formats
Summary
This section describes the message formats for logical replication in PostgreSQL, including Relation and Type messages, which contain information about the relation, its columns, and data types, such as OIDs, names, and type modifiers, used for streaming transactions and logical decoding.