diff options
author | Stan Hu <stanhu@gmail.com> | 2019-07-23 15:06:21 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2019-07-24 20:21:35 -0700 |
commit | ec0dc76c06a0b7afadab7ca5629a8d6a2f3d6370 (patch) | |
tree | 12e543cffe1cc26968d6263e8b32b95d3ca9aa9c /activerecord/test/cases/adapters/postgresql | |
parent | d3327ca40eaea734b2302c7a9ffa0360033a7484 (diff) | |
download | rails-ec0dc76c06a0b7afadab7ca5629a8d6a2f3d6370.tar.gz rails-ec0dc76c06a0b7afadab7ca5629a8d6a2f3d6370.tar.bz2 rails-ec0dc76c06a0b7afadab7ca5629a8d6a2f3d6370.zip |
Fix index_exists? for PostgreSQL expression indexes
Previously Rails expected indexes to be an array of columns, but for
PostgreSQL a expression index can just be a string of text. Handle this
by forcing `Index#columns` to be an Array inside `index_exists?`.
Closes #36739
Diffstat (limited to 'activerecord/test/cases/adapters/postgresql')
-rw-r--r-- | activerecord/test/cases/adapters/postgresql/postgresql_adapter_test.rb | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/activerecord/test/cases/adapters/postgresql/postgresql_adapter_test.rb b/activerecord/test/cases/adapters/postgresql/postgresql_adapter_test.rb index d99593817a..830c0892d3 100644 --- a/activerecord/test/cases/adapters/postgresql/postgresql_adapter_test.rb +++ b/activerecord/test/cases/adapters/postgresql/postgresql_adapter_test.rb @@ -253,9 +253,11 @@ module ActiveRecord 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 |