# File lib/innodb/log.rb, line 65
  def read_checkpoint(c)
    # Log archive related fields (e.g. group_array) are not currently in
    # use or even read by InnoDB. However, for the sake of completeness,
    # they are included.
    {
      :number         => c.name("number")       { c.get_uint64 },
      :lsn            => c.name("lsn")          { c.get_uint64 },
      :lsn_offset     => c.name("lsn_offset")   { c.get_uint32 },
      :buffer_size    => c.name("buffer_size")  { c.get_uint32 },
      :archived_lsn   => c.name("archived_lsn") { c.get_uint64 },
      :group_array    =>
        (0 .. LOG_CHECKPOINT_GROUPS - 1).map do |n|
          c.name("group_array[#{n}]") do
            {
              :archived_file_no => c.name("archived_file_no") { c.get_uint32 },
              :archived_offset  => c.name("archived_offset")  { c.get_uint32 },
            }
          end
        end,
      :checksum_1     => c.name("checksum_1")     { c.get_uint32 },
      :checksum_2     => c.name("checksum_2")     { c.get_uint32 },
      :fsp_free_limit => c.name("fsp_free_limit") { c.get_uint32 },
      :fsp_magic      => c.name("fsp_magic")      { c.get_uint32 },
    }
  end