private void storeRecordForInsert(int slot, ObjectInput in)
throws StandardException, IOException
{
StoredRecordHeader recordHeader = shiftUp(slot);
if (recordHeader == null) {
recordHeader = new StoredRecordHeader();
setHeaderAtSlot(slot, recordHeader);
}
bumpRecordCount(1);
// recordHeader represents the new version of the record header.
recordHeader.read(in);
// the record is already marked delete, we need to bump the deletedRowCount
if (recordHeader.isDeleted()) {
deletedRowCount++;
headerOutOfDate = true;
}
// during a rollforward insert, recordId == nextId
// during a rollback of purge, recordId < nextId
if (nextId <= recordHeader.getId())
nextId = recordHeader.getId()+1;
int recordOffset = firstFreeByte;
int offset = recordOffset;
// write each field out to the page
int numberFields = recordHeader.getNumberFields();
rawDataOut.setPosition(offset);
offset += recordHeader.write(rawDataOut);
int userData = 0;
for (int i = 0; i < numberFields; i++) {
// get the field header information, the input stream came from the log