14873: Skips indexes which 'columns' attribute isn't an Array.
authorLucas Di Pentima <ldipentima@veritasgenetics.com>
Wed, 27 Mar 2019 18:02:11 +0000 (15:02 -0300)
committerLucas Di Pentima <ldipentima@veritasgenetics.com>
Wed, 27 Mar 2019 18:02:11 +0000 (15:02 -0300)
ActiveRecord::Base.connection.indexes(table) didn't seem to return these
previous to rails 5.0 upgrade.

Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <ldipentima@veritasgenetics.com>

services/api/test/unit/arvados_model_test.rb

index d07027721f603565d3d6c66838fdd5ad666b95da..3645d0507b2db53f8316e7212d2b1434bbed30e6 100644 (file)
@@ -152,7 +152,10 @@ class ArvadosModelTest < ActiveSupport::TestCase
 
         indexes = ActiveRecord::Base.connection.indexes(table)
         search_index_by_columns = indexes.select do |index|
-          index.columns.sort == search_index_columns.sort
+          # After rails 5.0 upgrade, AR::Base.connection.indexes() started to include
+          # GIN indexes, with its 'columns' attribute being a String like
+          # 'to_tsvector(...)'
+          index.columns.is_a?(Array) ? index.columns.sort == search_index_columns.sort : false
         end
         search_index_by_name = indexes.select do |index|
           index.name == "#{table}_search_index"