# File lib/innodb/space.rb, line 313
  def each_index_root_page_number
    unless block_given?
      return enum_for(:each_index_root_page_number)
    end

    if innodb_system
      # Retrieve the index root page numbers from the data dictionary.
      innodb_system.data_dictionary.each_index_by_space_id(space_id) do |record|
        yield record["PAGE_NO"]
      end
    else
      # Guess that the index root pages will be present starting at page 3,
      # and walk forward until we find a non-root page. This should work fine
      # for IBD files, if they haven't added indexes online.
      (3...@pages).each do |page_number|
        page = page(page_number)
        if page.type == :INDEX && page.root?
          yield page_number
        end
      end
    end

    nil
  end