# File lib/innodb/undo_record.rb, line 67
  def header
    @header ||= cursor(pos_header).name("header") do |c|
      header = {
        :prev => c.name("prev") { c.get_uint16 },
        :next => c.name("next") { c.get_uint16 },
      }

      info = c.name("info") { c.get_uint8 }
      cmpl = (info & COMPILATION_INFO_MASK) >> COMPILATION_INFO_SHIFT
      header[:type] = TYPE[info & TYPE_MASK]
      header[:extern_flag] = (info & EXTERN_FLAG) != 0
      header[:info] = {
        :order_may_change => (cmpl & COMPILATION_INFO_NO_ORDER_CHANGE_BV) == 0,
        :size_may_change  => (cmpl & COMPILATION_INFO_NO_SIZE_CHANGE_BV) == 0,
      }

      header
    end
  end