-module ActiveRecord
- module ConnectionAdapters
- module SchemaStatements
- def add_primary_key(table_name, column_name, options = {})
- index_name = options[:name]
- column_names = Array(column_name)
- quoted_column_names = column_names.map { |e| quote_column_name(e) }.join(", ")
- execute "ALTER TABLE #{table_name} ADD PRIMARY KEY #{quote_column_name(index_name)} (#{quoted_column_names})"
+module OpenStreetMap
+ module ActiveRecord
+ module AbstractAdapter
+ def add_index_options(table_name, column_name, options = {})
+ columns = options.delete(:columns)
+ index_name, index_type, index_columns, index_options, algorithm, using = super(table_name, column_name, options)
+ [index_name, index_type, columns || index_columns, index_options, algorithm, using]
+ end
+ end
+
+ module PostgreSQLAdapter
+ def quote_column_name(name)
+ Array(name).map { |n| super(n) }.join(", ")