aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-05-05 16:14:41 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-05-05 16:15:25 +0300
commit1460b199e6e748712253fa130d1c3368ba6ac861 (patch)
treea06fb2d3e210b975a237392feca6b616a0156166 /src
parenta692ee5870f0f442565b4c4bff367094599e9bdf (diff)
downloadpostgresql-1460b199e6e748712253fa130d1c3368ba6ac861.tar.gz
postgresql-1460b199e6e748712253fa130d1c3368ba6ac861.zip
Assert that pre/post-fix updated tuples are on the same page during replay.
If they were not 'oldtup.t_data' would be dereferenced while set to NULL in case of a full page image for block 0. Do so primarily to silence coverity; but also to make sure this prerequisite isn't changed without adapting the replay routine as that would appear to work in many cases. Andres Freund
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/heap/heapam.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index a04763207f0..336fbb06dac 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -8115,11 +8115,13 @@ newsame:;
if (xlrec->flags & XLOG_HEAP_PREFIX_FROM_OLD)
{
+ Assert(samepage);
memcpy(&prefixlen, recdata, sizeof(uint16));
recdata += sizeof(uint16);
}
if (xlrec->flags & XLOG_HEAP_SUFFIX_FROM_OLD)
{
+ Assert(samepage);
memcpy(&suffixlen, recdata, sizeof(uint16));
recdata += sizeof(uint16);
}