Hi, On 4/4/23 9:48 AM, Masahiko Sawada wrote:
On Tue, Apr 4, 2023 at 10:55 AM Masahiko Sawada <[email protected]> wrote:Regarding 0004 patch: @@ -2626,6 +2626,12 @@ InitWalSenderSlot(void) walsnd->sync_standby_priority = 0; walsnd->latch = &MyProc->procLatch; walsnd->replyTime = 0; + + if (MyDatabaseId == InvalidOid) + walsnd->kind = REPLICATION_KIND_PHYSICAL; + else + walsnd->kind = REPLICATION_KIND_LOGICAL; + I think we might want to set the replication kind when processing the START_REPLICATION command. The walsender using a logical replication slot is not necessarily streaming (e.g. when COPYing table data).Discussing with Bertrand off-list, it's wrong as the logical replication slot creation also needs to read WAL records so a walsender who is creating a logical replication slot needs to be woken up. We can set it the replication kind when processing START_REPLICATION and CREATE_REPLICATION_SLOT, but it seems better to set it in one place. So I agree to set it in InitWalSenderSlot().
Thanks for the review and feedback! Added a comment in 0004 in V58 just posted up-thread to explain the reason why the walsnd->kind assignment is done InitWalSenderSlot(). Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com
