Alvaro Herrera <alvhe...@2ndquadrant.com> writes: > On 2020-Sep-15, Alvaro Herrera wrote: >> I overlooked this in 2f9661311b83. From this perspective, I agree it >> looks wrong. We still have to send *some* completion tag (the 'C' >> message), but maybe we can invent a separate entry point in dest.c for >> that -- EndReplicationCommand() or some such -- that takes values from a >> separate enum?
> It seems simpler than that actually; we don't need to build a lot of > infrastructure. This looks moderately reasonable to me. However, with the process title reporting I want to add, we're going to end up with a switch that looks like case T_IdentifySystemCmd: + set_ps_display("IDENTIFY_SYSTEM"); IdentifySystem(); + EndReplicationCommand("IDENTIFY_SYSTEM"); break; case T_BaseBackupCmd: + set_ps_display("BASE_BACKUP"); PreventInTransactionBlock(true, "BASE_BACKUP"); SendBaseBackup((BaseBackupCmd *) cmd_node); + EndReplicationCommand("BASE_BACKUP"); break; which is starting to look a bit repetitive and copy-pasteo-prone. I don't see an easy way to improve on it though. The only obvious alternative would be to put another switch before the main one that just fills a "const char *cmdtag" variable, but that seems ugly. regards, tom lane