diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG index 4d117fd79b721..3d5346d0447ec 100644 --- a/activerecord/CHANGELOG +++ b/activerecord/CHANGELOG @@ -4,8 +4,6 @@ * Pushing a record onto a has_many :through sets the association's foreign key to the associate's primary key and adds it to the correct association. #5815, #5829 [josh@hasmanythrough.com] -* PostgreSQL: simplify index introspection query. #5819 [stephen_purcell@yahoo.com] - * Add records to has_many :through using <<, push, and concat by creating the association record. Raise if base or associate are new records since both ids are required to create the association. #build raises since you can't associate an unsaved record. #create! takes an attributes hash and creates the associated record and its association in a transaction. [Jeremy Kemper] # Create a tagging to associate the post and tag. diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index 93eb06cac149b..a2eaac549e7dd 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -209,7 +209,11 @@ def indexes(table_name, name = nil) #:nodoc: AND t.oid = d.indrelid AND t.relname = '#{table_name}' AND a.attrelid = t.oid - AND a.attnum = ANY (d.indkey) + AND ( d.indkey[0]=a.attnum OR d.indkey[1]=a.attnum + OR d.indkey[2]=a.attnum OR d.indkey[3]=a.attnum + OR d.indkey[4]=a.attnum OR d.indkey[5]=a.attnum + OR d.indkey[6]=a.attnum OR d.indkey[7]=a.attnum + OR d.indkey[8]=a.attnum OR d.indkey[9]=a.attnum ) ORDER BY i.relname SQL