提交 6e655732 编写于 作者: A Aaron Patterson 提交者: José Valim

refactoring the postgres adapter index method to avoid inject and use...

refactoring the postgres adapter index method to avoid inject and use values_at. [#4976 state:resolved]
Signed-off-by: NJosé Valim <jose.valim@gmail.com>
上级 47134a04
......@@ -615,15 +615,15 @@ def indexes(table_name, name = nil)
indkey = row[2].split(" ")
oid = row[3]
columns = query(<<-SQL, "Columns for index #{row[0]} on #{table_name}").inject({}) {|attlist, r| attlist[r[1]] = r[0]; attlist}
SELECT a.attname, a.attnum
columns = Hash[query(<<-SQL, "Columns for index #{row[0]} on #{table_name}")]
SELECT a.attnum, a.attname
FROM pg_attribute a
WHERE a.attrelid = #{oid}
AND a.attnum IN (#{indkey.join(",")})
SQL
column_names = indkey.map {|attnum| columns[attnum] }
column_names.compact.empty? ? nil : IndexDefinition.new(table_name, index_name, unique, column_names)
column_names = columns.values_at(*indkey).compact
column_names.empty? ? nil : IndexDefinition.new(table_name, index_name, unique, column_names)
end.compact
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册