aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2018-07-05 17:42:37 -0400
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2018-07-05 17:42:37 -0400
commit02bfd6d415bfacdf16a273420fd86c67189556ff (patch)
tree76c94f59213bb9a03d27ddec6fd33fed4994ce53
parenteedbbff504e408bd65ff22e70fde85b5ac0bf8c0 (diff)
downloadpostgresql-02bfd6d415bfacdf16a273420fd86c67189556ff.tar.gz
postgresql-02bfd6d415bfacdf16a273420fd86c67189556ff.zip
logical decoding: beware of an unset specinsert change
Coverity complains that there is no protection in the code (at least in non-assertion-enabled builds) against speculative insertion failing to follow the expected protocol. Add an elog(ERROR) for the case.
-rw-r--r--src/backend/replication/logical/reorderbuffer.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c
index f559ffac9dd..3606e9ec7ff 100644
--- a/src/backend/replication/logical/reorderbuffer.c
+++ b/src/backend/replication/logical/reorderbuffer.c
@@ -1512,6 +1512,8 @@ ReorderBufferCommit(ReorderBuffer *rb, TransactionId xid,
* use as a normal record. It'll be cleaned up at the end
* of INSERT processing.
*/
+ if (specinsert == NULL)
+ elog(ERROR, "invalid ordering of speculative insertion changes");
Assert(specinsert->data.tp.oldtuple == NULL);
change = specinsert;
change->action = REORDER_BUFFER_CHANGE_INSERT;