change wire protocol data type for history file content
authorBruce Momjian <bruce@momjian.us>
Thu, 12 Nov 2020 19:08:59 +0000 (14:08 -0500)
committerBruce Momjian <bruce@momjian.us>
Thu, 12 Nov 2020 19:08:59 +0000 (14:08 -0500)
This was marked as BYTEA, but is more like TEXT, which is how we already
pass the history timeline file name.  Internally, we don't do any
encoding or bytea escape handling, but TEXT seems closest.  This should
cause no behavioral change.

Reported-by: Brar Piening
Discussion: https://postgr.es/m/6a1b9cd9-17e3-df67-be55-86102af6bdf5@gmx.de

Backpatch-through: master

doc/src/sgml/protocol.sgml
src/backend/replication/walsender.c

index 9a95d7b734dac45f1ad768969c7a33ba1fe16626..cee28889e1d4c75a7fb27e80fb6c864a8312d846 100644 (file)
@@ -1859,7 +1859,9 @@ The commands accepted in replication mode are:
      <para>
       Requests the server to send over the timeline history file for timeline
       <replaceable class="parameter">tli</replaceable>.  Server replies with a
-      result set of a single row, containing two fields:
+      result set of a single row, containing two fields.  While the fields
+      are labeled as <type>text</type>, they effectively return raw bytes,
+      with no encoding conversion:
      </para>
 
      <para>
@@ -1877,7 +1879,7 @@ The commands accepted in replication mode are:
 
       <varlistentry>
       <term>
-       <literal>content</literal> (<type>bytea</type>)
+       <literal>content</literal> (<type>text</type>)
       </term>
       <listitem>
       <para>
index 1a25be92c29ec271db4a266c29da9b17aa3f53d7..5d1b1a16becb46e99dd6c221c49fa5605c28d5f6 100644 (file)
@@ -496,7 +496,7 @@ SendTimeLineHistory(TimeLineHistoryCmd *cmd)
    pq_sendstring(&buf, "content"); /* col name */
    pq_sendint32(&buf, 0);      /* table oid */
    pq_sendint16(&buf, 0);      /* attnum */
-   pq_sendint32(&buf, BYTEAOID);   /* type oid */
+   pq_sendint32(&buf, TEXTOID);    /* type oid */
    pq_sendint16(&buf, -1);     /* typlen */
    pq_sendint32(&buf, 0);      /* typmod */
    pq_sendint16(&buf, 0);      /* format code */