postgres.git / summary / log / commit / refs
commit b5b7072a6725a2564c43b88feb5c7bb38862d4e8
Author: Bruce Momjian <bruce@momjian.us>
Date: Thu Nov 12 19:33:28 2020 +0000
First released in: 9.5.25, 9.6.21, 10.16, 11.11, 12.6, 13.2
doc: wire protocol data type for history file content is bytea
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 | 5 ++++-
src/backend/replication/walsender.c | 4 ++++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml
index 9b9e8246281..68147334040 100644
--- a/doc/src/sgml/protocol.sgml
+++ b/doc/src/sgml/protocol.sgml
@@ -1789,7 +1789,10 @@ 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> and <type>bytea</type>,
+ they effectively return raw bytes, with no escaping or encoding
+ conversion:
</para>
<para>
diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c
index b6c456f0c5a..c76608c28f3 100644
--- a/src/backend/replication/walsender.c
+++ b/src/backend/replication/walsender.c
@@ -463,6 +463,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 */
[parent: 7e3dc147d0a8]