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
This commit is contained in:
Bruce Momjian 2020-11-12 14:08:59 -05:00
parent 951dfa34f4
commit 66a8f09048
2 changed files with 5 additions and 3 deletions

View 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>

View 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 */