def read_record
cursor(pos_record).name("record") do |c|
this_record = {
:page => undo_page.offset,
:offset => position,
:header => header,
:undo_no => c.name("undo_no") { c.get_imc_uint64 },
:table_id => c.name("table_id") { c.get_imc_uint64 },
}
if has_previous_version?
this_record[:info_bits] = c.name("info_bits") { c.get_uint8 }
this_record[:trx_id] = c.name("trx_id") { c.get_ic_uint64 }
this_record[:roll_ptr] = c.name("roll_ptr") {
Innodb::DataType::RollPointerType.parse_roll_pointer(c.get_ic_uint64)
}
end
if index_page
read_record_fields(this_record, c)
else
this_record[:data] = c.get_bytes(header[:next] - c.position - 2)
end
this_record
end
end