diff options
| author | Alvaro Herrera | 2018-07-05 21:42:37 +0000 |
|---|---|---|
| committer | Alvaro Herrera | 2018-07-05 21:42:37 +0000 |
| commit | 3ca966c06f91fb6ccc11d71d4094c1e297b8945d (patch) | |
| tree | 77eab01895f7372d7e6b3d63c27d7e6865d06701 | |
| parent | 0c06534bd63b0bd23d7744a53f3b490a2adeea8a (diff) | |
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.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c index 5792cd14a09..d3ec1370510 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -1474,6 +1474,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; |
