未验证 提交 61d13bd4 编写于 作者: R Rafael França 提交者: Rafael Mendonça França

Merge pull request #36740 from stanhu/sh-fix-index-exists-postgresql-partial-index

Fix index_exists? for PostgreSQL expression indexes
上级 2e5a6b3b
......@@ -100,7 +100,7 @@ def indexes(table_name)
def index_exists?(table_name, column_name, options = {})
column_names = Array(column_name).map(&:to_s)
checks = []
checks << lambda { |i| i.columns == column_names }
checks << lambda { |i| Array(i.columns) == column_names }
checks << lambda { |i| i.unique } if options[:unique]
checks << lambda { |i| i.name == options[:name].to_s } if options[:name]
......
......@@ -240,9 +240,11 @@ def test_partial_index
def test_expression_index
with_example_table do
@connection.add_index "ex", "mod(id, 10), abs(number)", name: "expression"
expr = "mod(id, 10), abs(number)"
@connection.add_index "ex", expr, name: "expression"
index = @connection.indexes("ex").find { |idx| idx.name == "expression" }
assert_equal "mod(id, 10), abs(number)", index.columns
assert_equal expr, index.columns
assert_equal true, @connection.index_exists?("ex", expr, name: "expression")
end
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册