summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2020-11-12 14:08:59 -0500
committerBruce Momjian <bruce@momjian.us>2020-11-12 14:08:59 -0500
commit66a8f090485e3e897a4804121fdbe856cba72d70 (patch)
tree57c366b4f7e415bc02b4ec988e933cac122508a6
parent951dfa34f41bb851602216d3ada5f80135370e4f (diff)
change wire protocol data type for history file content
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
-rw-r--r--doc/src/sgml/protocol.sgml6
-rw-r--r--src/backend/replication/walsender.c2
2 files changed, 5 insertions, 3 deletions
diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml
index 9a95d7b734d..cee28889e1d 100644
--- a/doc/src/sgml/protocol.sgml
+++ b/doc/src/sgml/protocol.sgml
@@ -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>
diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c
index 1a25be92c29..5d1b1a16bec 100644
--- a/src/backend/replication/walsender.c
+++ b/src/backend/replication/walsender.c
@@ -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 */