From 96c702c1edbde8a3f5013bd0ac6c25c85710258d Mon Sep 17 00:00:00 2001 From: Stephen Frost Date: Mon, 10 Dec 2018 09:31:38 -0500 Subject: [PATCH] Remove dead code in toast_fetch_datum_slice In toast_fetch_datum_slice(), we Assert() that what is passed in isn't compressed, but we then later had a check to see what the length of if what was passed in is compressed. That later check is rather confusing since toast_fetch_datum_slice() is only ever called with non-compressed datums and the Assert() earlier makes it clear that one shouldn't be passing in compressed datums. Add a comment to make it clear that toast_fetch_datum_slice() is just for non-compressed datums, and remove the dead code. --- src/backend/access/heap/tuptoaster.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/backend/access/heap/tuptoaster.c b/src/backend/access/heap/tuptoaster.c index fdbaf38126..d1dad998d2 100644 --- a/src/backend/access/heap/tuptoaster.c +++ b/src/backend/access/heap/tuptoaster.c @@ -2026,6 +2026,8 @@ toast_fetch_datum(struct varlena *attr) * * Reconstruct a segment of a Datum from the chunks saved * in the toast relation + * + * Note that this function only supports non-compressed external datums. * ---------- */ static struct varlena * @@ -2085,10 +2087,7 @@ toast_fetch_datum_slice(struct varlena *attr, int32 sliceoffset, int32 length) result = (struct varlena *) palloc(length + VARHDRSZ); - if (VARATT_EXTERNAL_IS_COMPRESSED(toast_pointer)) - SET_VARSIZE_COMPRESSED(result, length + VARHDRSZ); - else - SET_VARSIZE(result, length + VARHDRSZ); + SET_VARSIZE(result, length + VARHDRSZ); if (length == 0) return result; /* Can save a lot of work at this point! */ -- 2.40.0