Skip to content

Commit

Permalink
Merge pull request #9964 from where/using-schema-dump
Browse files Browse the repository at this point in the history
Dump the 'using' options for a SQL index into the schema.
  • Loading branch information
rafaelfranca committed Mar 28, 2013
2 parents 57fbcc5 + a89e9f7 commit 0739d14
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 2 deletions.
2 changes: 2 additions & 0 deletions activerecord/lib/active_record/schema_dumper.rb
Expand Up @@ -185,6 +185,8 @@ def indexes(table, stream)

statement_parts << ('where: ' + index.where.inspect) if index.where

statement_parts << ('using: ' + index.using.inspect) if index.using

' ' + statement_parts.join(', ')
end

Expand Down
10 changes: 8 additions & 2 deletions activerecord/test/cases/schema_dumper_test.rb
Expand Up @@ -177,13 +177,19 @@ def test_schema_dump_illegal_ignored_table_value

def test_schema_dumps_index_columns_in_right_order
index_definition = standard_dump.split(/\n/).grep(/add_index.*companies/).first.strip
assert_equal 'add_index "companies", ["firm_id", "type", "rating"], name: "company_index"', index_definition
if current_adapter?(:MysqlAdapter) or current_adapter?(:Mysql2Adapter) or current_adapter?(:PostgreSQLAdapter)
assert_equal 'add_index "companies", ["firm_id", "type", "rating"], name: "company_index", using: :btree', index_definition
else
assert_equal 'add_index "companies", ["firm_id", "type", "rating"], name: "company_index"', index_definition
end
end

def test_schema_dumps_partial_indices
index_definition = standard_dump.split(/\n/).grep(/add_index.*company_partial_index/).first.strip
if current_adapter?(:PostgreSQLAdapter)
assert_equal 'add_index "companies", ["firm_id", "type"], name: "company_partial_index", where: "(rating > 10)"', index_definition
assert_equal 'add_index "companies", ["firm_id", "type"], name: "company_partial_index", where: "(rating > 10)", using: :btree', index_definition
elsif current_adapter?(:MysqlAdapter) or current_adapter?(:Mysql2Adapter)
assert_equal 'add_index "companies", ["firm_id", "type"], name: "company_partial_index", using: :btree', index_definition
else
assert_equal 'add_index "companies", ["firm_id", "type"], name: "company_partial_index"', index_definition
end
Expand Down
1 change: 1 addition & 0 deletions activerecord/test/schema/schema.rb
Expand Up @@ -183,6 +183,7 @@ def create_table(*args, &block)

add_index :companies, [:firm_id, :type, :rating], :name => "company_index"
add_index :companies, [:firm_id, :type], :name => "company_partial_index", :where => "rating > 10"
add_index :companies, :name, :name => 'company_name_index', :using => :btree

create_table :vegetables, :force => true do |t|
t.string :name
Expand Down

0 comments on commit 0739d14

Please sign in to comment.