From 1460b199e6e748712253fa130d1c3368ba6ac861 Mon Sep 17 00:00:00 2001
From: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Mon, 5 May 2014 16:14:41 +0300
Subject: [PATCH] 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
---
 src/backend/access/heap/heapam.c | 2 ++
 1 file changed, 2 insertions(+)

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);
 	}
-- 
GitLab