aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/replication/pgoutput/pgoutput.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/backend/replication/pgoutput/pgoutput.c b/src/backend/replication/pgoutput/pgoutput.c
index a3e5300679f..86e0951a700 100644
--- a/src/backend/replication/pgoutput/pgoutput.c
+++ b/src/backend/replication/pgoutput/pgoutput.c
@@ -407,13 +407,16 @@ pgoutput_truncate(LogicalDecodingContext *ctx, ReorderBufferTXN *txn,
maybe_send_schema(ctx, relation, relentry);
}
- OutputPluginPrepareWrite(ctx, true);
- logicalrep_write_truncate(ctx->out,
- nrelids,
- relids,
- change->data.truncate.cascade,
- change->data.truncate.restart_seqs);
- OutputPluginWrite(ctx, true);
+ if (nrelids > 0)
+ {
+ OutputPluginPrepareWrite(ctx, true);
+ logicalrep_write_truncate(ctx->out,
+ nrelids,
+ relids,
+ change->data.truncate.cascade,
+ change->data.truncate.restart_seqs);
+ OutputPluginWrite(ctx, true);
+ }
MemoryContextSwitchTo(old);
MemoryContextReset(data->context);