doc: wire protocol data type for history file content is bytea
authorBruce Momjian
Thu, 12 Nov 2020 19:33:28 +0000 (14:33 -0500)
committerBruce Momjian
Thu, 12 Nov 2020 19:33:28 +0000 (14:33 -0500)
Document that though the history file content is marked as bytea, it is
the same a text, and neither is btyea-escaped or encoding converted.

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

Backpatch-through: 13 - 9.5 (not master)

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

index 3cab4a8380538cd6a191b3fd34c88f747fea3437..ebfde41ecf1913291186ca7699015429f412cb18 100644 (file)
@@ -1858,7 +1858,10 @@ The commands accepted in replication mode are:
      
       Requests the server to send over the timeline history file for timeline
       tli.  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 text and bytea,
+      they effectively return raw bytes, with no escaping or encoding
+      conversion:
      
 
      
index 86e6f4e433b6264428773a4ba5ddc269996fcc00..028075447216920839a13a0e8136053fcc545b04 100644 (file)
@@ -466,6 +466,10 @@ SendTimeLineHistory(TimeLineHistoryCmd *cmd)
    pq_sendstring(&buf, "content"); /* col name */
    pq_sendint32(&buf, 0);      /* table oid */
    pq_sendint16(&buf, 0);      /* attnum */
+   /*
+    * While this is labeled as BYTEAOID, it is the same output format
+    * as TEXTOID above.
+    */
    pq_sendint32(&buf, BYTEAOID);   /* type oid */
    pq_sendint16(&buf, -1);     /* typlen */
    pq_sendint32(&buf, 0);      /* typmod */