/* write all mappings consecutively */
len = src->num_mappings * sizeof(LogicalRewriteMappingData);
- waldata = palloc(len);
- waldata_start = waldata;
+ waldata_start = waldata = palloc(len);
/*
* collect data we need to write out, but don't modify ondisk data yet
src->num_mappings--;
}
+ Assert(src->num_mappings == 0);
+ Assert(waldata == waldata_start + len);
+
/*
* Note that we deviate from the usual WAL coding practices here,
* check the above "Logical rewrite support" comment for reasoning.
written, len)));
src->off += len;
- Assert(src->num_mappings == 0);
-
rdata[1].data = waldata_start;
rdata[1].len = len;
rdata[1].buffer = InvalidBuffer;
/* write xlog record */
XLogInsert(RM_HEAP2_ID, XLOG_HEAP2_REWRITE, rdata);
+ pfree(waldata_start);
}
Assert(state->rs_num_rewrite_mappings == 0);
}