Eliminate replication protocol error related to IDENTIFY_SYSTEM.
The requirement that IDENTIFY_SYSTEM be run before START_REPLICATION was both undocumented and unnecessary. Remove the error and ensure that ThisTimeLineID is initialized in START_REPLICATION. Elect not to backport because this requirement was expected behavior (even if inconsistently enforced), and is not likely to cause any major problem. Author: Jeff Davis Reviewed-by: Andres Freund Discussion: https://postgr.es/m/de4bbf05b7cd94227841c433ea6ff71d2130c713.camel%40j-davis.com
This commit is contained in:
parent
31e8cfac58
commit
8e7811e952
@ -573,11 +573,6 @@ StartReplication(StartReplicationCmd *cmd)
|
|||||||
StringInfoData buf;
|
StringInfoData buf;
|
||||||
XLogRecPtr FlushPtr;
|
XLogRecPtr FlushPtr;
|
||||||
|
|
||||||
if (ThisTimeLineID == 0)
|
|
||||||
ereport(ERROR,
|
|
||||||
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
|
|
||||||
errmsg("IDENTIFY_SYSTEM has not been run before START_REPLICATION")));
|
|
||||||
|
|
||||||
/* create xlogreader for physical replication */
|
/* create xlogreader for physical replication */
|
||||||
xlogreader =
|
xlogreader =
|
||||||
XLogReaderAllocate(wal_segment_size, NULL,
|
XLogReaderAllocate(wal_segment_size, NULL,
|
||||||
@ -619,6 +614,7 @@ StartReplication(StartReplicationCmd *cmd)
|
|||||||
* that. Otherwise use the timeline of the last replayed record, which is
|
* that. Otherwise use the timeline of the last replayed record, which is
|
||||||
* kept in ThisTimeLineID.
|
* kept in ThisTimeLineID.
|
||||||
*/
|
*/
|
||||||
|
am_cascading_walsender = RecoveryInProgress();
|
||||||
if (am_cascading_walsender)
|
if (am_cascading_walsender)
|
||||||
{
|
{
|
||||||
/* this also updates ThisTimeLineID */
|
/* this also updates ThisTimeLineID */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user