def record_describer_by_index_name(table_name, index_name)
if data_dictionary_index?(table_name, index_name)
return data_dictionary_index_describer(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
describer = Innodb::RecordDescriber.new
if index["TYPE"] & INDEX_TYPE_FLAG[:CLUSTERED] != 0
describer.type :clustered
else
describer.type :secondary
end
each_column_description_by_index_name(table_name, index_name) do |column|
case column[:type]
when :key
describer.key column[:name], *column[:description]
when :row
describer.row column[:name], *column[:description]
end
end
describer
end