# 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