diff options
author | Bruce Momjian <bruce@momjian.us> | 2020-11-12 14:33:28 -0500 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2020-11-12 14:33:28 -0500 |
commit | b5b7072a6725a2564c43b88feb5c7bb38862d4e8 (patch) | |
tree | 250c65403d194baa6f355f862130688178cd0d0f | |
parent | 7e3dc147d0a8364fb39f3229031cd6bf44180307 (diff) | |
download | postgresql-b5b7072a6725a2564c43b88feb5c7bb38862d4e8.tar.gz postgresql-b5b7072a6725a2564c43b88feb5c7bb38862d4e8.zip |
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.sgml | 5 | ||||
-rw-r--r-- | src/backend/replication/walsender.c | 4 |
2 files changed, 8 insertions, 1 deletions
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 */ |