Hi,
On 4/6/23 11:55 AM, Amit Kapila wrote:
On Thu, Apr 6, 2023 at 12:10 PM Amit Kapila <amit.kapil...@gmail.com> wrote:
On Wed, Apr 5, 2023 at 9:27 PM Drouvot, Bertrand
<bertranddrouvot...@gmail.com> wrote:
Another comment on 0001.
extern void CheckSlotRequirements(void);
extern void CheckSlotPermissions(void);
+extern void ResolveRecoveryConflictWithLogicalSlots(Oid dboid,
TransactionId xid, char *reason);
This doesn't seem to be called from anywhere.
Few other comments:
==================
0004
1.
+ * - physical walsenders in case of new time line and cascade
+ * replication is allowed.
+ * - logical walsenders in case of new time line or recovery is in progress
+ * (logical decoding on standby).
+ */
+ WalSndWakeup(switchedTLI && AllowCascadeReplication(),
+ switchedTLI || RecoveryInProgress());
Do we need AllowCascadeReplication() check specifically for physical
walsenders? I think this should be true for both physical and logical
walsenders.
I don't think it could be possible to create logical walsenders on a standby if
AllowCascadeReplication() is not true, or am I missing something?
If so, I think it has to be set to true for the logical walsenders in all the
case (like
done in V62 posted up-thread).
Andres, made the point up-thread that RecoveryInProgress() is always true, and
as we don't want to be woken up only when there is a time line change then I
think
it has to be always true for logical walsenders.
0005
2.
--- a/src/backend/access/transam/xlogfuncs.c
+++ b/src/backend/access/transam/xlogfuncs.c
@@ -38,6 +38,7 @@
#include "utils/pg_lsn.h"
#include "utils/timestamp.h"
#include "utils/tuplestore.h"
+#include "storage/standby.h"
The header includes should be in alphabetical order.
Good catch, thanks! Done in V62.
Regards,
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com