def dump
puts "Record at offset %i" % offset
puts
puts "Header:"
puts " %-20s: %i" % ["Next record offset", header[:next]]
puts " %-20s: %i" % ["Heap number", header[:heap_number]]
puts " %-20s: %s" % ["Type", header[:type]]
puts " %-20s: %s" % ["Deleted", header[:deleted]]
puts " %-20s: %s" % ["Length", header[:length]]
puts
if page.leaf?
puts "System fields:"
puts " Transaction ID: %s" % transaction_id
puts " Roll Pointer:"
puts " Undo Log: page %i, offset %i" % [
roll_pointer[:undo_log][:page],
roll_pointer[:undo_log][:offset],
]
puts " Rollback Segment ID: %i" % roll_pointer[:rseg_id]
puts " Insert: %s" % roll_pointer[:is_insert]
puts
end
puts "Key fields:"
key.each do |field|
puts " %s: %s" % [
field[:name],
field[:value].inspect,
]
end
puts
if page.leaf?
puts "Non-key fields:"
row.each do |field|
puts " %s: %s" % [
field[:name],
field[:value].inspect,
]
end
puts
else
puts "Child page number: %i" % child_page_number
puts
end
end