summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2020-11-12 14:33:28 -0500
committerBruce Momjian <bruce@momjian.us>2020-11-12 14:33:28 -0500
commit86913ba9abaf2a56ea19b61ccbcf9d35e894d5d0 (patch)
tree1ebcb5f9de219fbadff5541547f12d557b6ead6a
parent245a35f96e3a12b7fe19bad88671d75dcbec133c (diff)
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)
-rw-r--r--doc/src/sgml/protocol.sgml5
-rw-r--r--src/backend/replication/walsender.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml
index 87d67c00569..7e3c6ad22cb 100644
--- a/doc/src/sgml/protocol.sgml
+++ b/doc/src/sgml/protocol.sgml
@@ -1425,7 +1425,10 @@ The commands accepted in walsender 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 d31e996a065..f82932ffa28 100644
--- a/src/backend/replication/walsender.c
+++ b/src/backend/replication/walsender.c
@@ -462,6 +462,10 @@ SendTimeLineHistory(TimeLineHistoryCmd *cmd)
pq_sendstring(&buf, "content"); /* col name */
pq_sendint(&buf, 0, 4); /* table oid */
pq_sendint(&buf, 0, 2); /* attnum */
+ /*
+ * While this is labeled as BYTEAOID, it is the same output format
+ * as TEXTOID above.
+ */
pq_sendint(&buf, BYTEAOID, 4); /* type oid */
pq_sendint(&buf, -1, 2); /* typlen */
pq_sendint(&buf, 0, 4); /* typmod */