# File lib/innodb/data_dictionary.rb, line 608
  def each_column_description_by_index_name(table_name, index_name)
    unless block_given?
      return enum_for(:each_column_description_by_index_name, table_name, index_name)
    end

    unless index = index_by_name(table_name, index_name)
      raise "Index #{index_name} for table #{table_name} not found"
    end

    columns_in_index = {}
    each_column_in_index_by_name(table_name, index_name) do |record|
      columns_in_index[record["NAME"]] = 1
      yield _make_column_description(:key, record)
    end

    if index["TYPE"] & INDEX_TYPE_FLAG[:CLUSTERED] != 0
      each_column_by_table_name(table_name) do |record|
        unless columns_in_index.include?(record["NAME"])
          yield _make_column_description(:row, record)
        end
      end
    else
      clustered_index_name = clustered_index_name_by_table_name(table_name)

      each_column_in_index_by_name(table_name, clustered_index_name) do |record|
        yield _make_column_description(:row, record)
      end
    end

    nil
  end