Exclude PG 16

pull/7229/head
EmelSimsek 2023-10-06 10:52:28 +03:00 committed by Emel Şimşek
parent b45a5fffc3
commit f4c4e581a1
1 changed files with 6 additions and 5 deletions

View File

@ -94,10 +94,14 @@ replication_origin_filter_cb(LogicalDecodingContext *ctx, RepOriginId origin_id)
* update_replication_progress is copied from Postgres 15. We use it to send keepalive * update_replication_progress is copied from Postgres 15. We use it to send keepalive
* messages when we are filtering out the wal changes resulting from the initial copy. * messages when we are filtering out the wal changes resulting from the initial copy.
* If we do not send out messages long enough, wal reciever will time out. * If we do not send out messages long enough, wal reciever will time out.
* Postgres 16 has refactored this code such that keepalive messages are sent during
* reordering phase which is above change_cb. So we do not need to send keepalive in
* change_cb.
*/ */
static void static void
update_replication_progress(LogicalDecodingContext *ctx, bool skipped_xact) update_replication_progress(LogicalDecodingContext *ctx, bool skipped_xact)
{ {
#if (PG_VERSION_NUM <= PG_VERSION_15)
static int changes_count = 0; static int changes_count = 0;
/* /*
@ -121,6 +125,7 @@ update_replication_progress(LogicalDecodingContext *ctx, bool skipped_xact)
#endif #endif
changes_count = 0; changes_count = 0;
} }
#endif
} }
@ -142,11 +147,7 @@ shard_split_change_cb(LogicalDecodingContext *ctx, ReorderBufferTXN *txn,
return; return;
} }
/* /* Send replication keepalive. */
* Send replication keepalive. Keepalive is needed to prevent logical replication
* worker from timing out when decoder spends a long time filtering out
* change records without communicating with the wal receiver.
*/
update_replication_progress(ctx, false); update_replication_progress(ctx, false);
/* check if the relation is publishable.*/ /* check if the relation is publishable.*/