xlrec->nredirected,
                         xlrec->ndead);
 
-       if (!XLogRecHasBlockImage(record, 0))
+       if (XLogRecHasBlockData(record, 0))
        {
            OffsetNumber *end;
            OffsetNumber *redirected;
 
        appendStringInfo(buf, "nunused: %u", xlrec->nunused);
 
-       if (!XLogRecHasBlockImage(record, 0))
+       if (XLogRecHasBlockData(record, 0))
        {
            OffsetNumber *nowunused;
 
        appendStringInfo(buf, "snapshotConflictHorizon: %u, nplans: %u",
                         xlrec->snapshotConflictHorizon, xlrec->nplans);
 
-       if (!XLogRecHasBlockImage(record, 0))
+       if (XLogRecHasBlockData(record, 0))
        {
            xl_heap_freeze_plan *plans;
            OffsetNumber *offsets;
        appendStringInfo(buf, "ntuples: %d, flags: 0x%02X", xlrec->ntuples,
                         xlrec->flags);
 
-       if (!XLogRecHasBlockImage(record, 0) && !isinit)
+       if (XLogRecHasBlockData(record, 0) && !isinit)
        {
            appendStringInfoString(buf, ", offsets:");
            array_desc(buf, xlrec->offsets, sizeof(OffsetNumber),
 
                appendStringInfo(buf, "ndeleted: %u, nupdated: %u",
                                 xlrec->ndeleted, xlrec->nupdated);
 
-               if (!XLogRecHasBlockImage(record, 0))
+               if (XLogRecHasBlockData(record, 0))
                    delvacuum_desc(buf, XLogRecGetBlockData(record, 0, NULL),
                                   xlrec->ndeleted, xlrec->nupdated);
                break;
                                 xlrec->snapshotConflictHorizon,
                                 xlrec->ndeleted, xlrec->nupdated);
 
-               if (!XLogRecHasBlockImage(record, 0))
+               if (XLogRecHasBlockData(record, 0))
                    delvacuum_desc(buf, XLogRecGetBlockData(record, 0, NULL),
                                   xlrec->ndeleted, xlrec->nupdated);
                break;
 
    ((decoder)->record->blocks[block_id].has_image)
 #define XLogRecBlockImageApply(decoder, block_id)      \
    ((decoder)->record->blocks[block_id].apply_image)
+#define XLogRecHasBlockData(decoder, block_id)     \
+   ((decoder)->record->blocks[block_id].has_data)
 
 #ifndef FRONTEND
 extern FullTransactionId XLogRecGetFullXid(XLogReaderState *record);