Simplify some logic in CreateReplicationSlot()
This refactoring reduces the code in charge of creating replication slots from two "if" block to a single one, making it slightly cleaner. This change is possible since 1d04a59be31b, that has removed the intermediate code that existed between the two "if" blocks in charge of initializing the output message buffer. Author: Peter Smith Discussion: https://postgr.es/m/CAHut+PtnJzqKT41Zt8pChRzba=QgCqjtfYvcf84NMj3VFJoKfw@mail.gmail.com
This commit is contained in:
parent
7c3fb505b1
commit
e83aa9f92f
@ -1061,9 +1061,25 @@ CreateReplicationSlot(CreateReplicationSlotCmd *cmd)
|
||||
ReplicationSlotCreate(cmd->slotname, false,
|
||||
cmd->temporary ? RS_TEMPORARY : RS_PERSISTENT,
|
||||
false);
|
||||
|
||||
if (reserve_wal)
|
||||
{
|
||||
ReplicationSlotReserveWal();
|
||||
|
||||
ReplicationSlotMarkDirty();
|
||||
|
||||
/* Write this slot to disk if it's a permanent one. */
|
||||
if (!cmd->temporary)
|
||||
ReplicationSlotSave();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LogicalDecodingContext *ctx;
|
||||
bool need_full_snapshot = false;
|
||||
|
||||
Assert(cmd->kind == REPLICATION_KIND_LOGICAL);
|
||||
|
||||
CheckLogicalDecodingRequirements();
|
||||
|
||||
/*
|
||||
@ -1076,12 +1092,6 @@ CreateReplicationSlot(CreateReplicationSlotCmd *cmd)
|
||||
ReplicationSlotCreate(cmd->slotname, true,
|
||||
cmd->temporary ? RS_TEMPORARY : RS_EPHEMERAL,
|
||||
two_phase);
|
||||
}
|
||||
|
||||
if (cmd->kind == REPLICATION_KIND_LOGICAL)
|
||||
{
|
||||
LogicalDecodingContext *ctx;
|
||||
bool need_full_snapshot = false;
|
||||
|
||||
/*
|
||||
* Do options check early so that we can bail before calling the
|
||||
@ -1175,16 +1185,6 @@ CreateReplicationSlot(CreateReplicationSlotCmd *cmd)
|
||||
if (!cmd->temporary)
|
||||
ReplicationSlotPersist();
|
||||
}
|
||||
else if (cmd->kind == REPLICATION_KIND_PHYSICAL && reserve_wal)
|
||||
{
|
||||
ReplicationSlotReserveWal();
|
||||
|
||||
ReplicationSlotMarkDirty();
|
||||
|
||||
/* Write this slot to disk if it's a permanent one. */
|
||||
if (!cmd->temporary)
|
||||
ReplicationSlotSave();
|
||||
}
|
||||
|
||||
snprintf(xloc, sizeof(xloc), "%X/%X",
|
||||
LSN_FORMAT_ARGS(MyReplicationSlot->data.confirmed_flush));
|
||||
|
Loading…
x
Reference in New Issue
Block a user