aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters
diff options
context:
space:
mode:
authorMichael Koziarski <michael@koziarski.com>2008-03-03 06:56:31 +0000
committerMichael Koziarski <michael@koziarski.com>2008-03-03 06:56:31 +0000
commitb3b0a0c388b27ec9d658823b963f4bc59ff2f270 (patch)
treec27ec785a542d2e3696ddc16869a98740bbed42d /activerecord/lib/active_record/connection_adapters
parentcc5a957d2b57b1d7081abd6939396f32e7b4b204 (diff)
downloadrails-b3b0a0c388b27ec9d658823b963f4bc59ff2f270.tar.gz
rails-b3b0a0c388b27ec9d658823b963f4bc59ff2f270.tar.bz2
rails-b3b0a0c388b27ec9d658823b963f4bc59ff2f270.zip
Make the schema dumper respect the schema settings in database.yml. References #8659 [sveiss]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8979 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters')
-rw-r--r--activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
index 6b0204191c..41024539b2 100644
--- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
@@ -486,14 +486,16 @@ module ActiveRecord
# Returns the list of all indexes for a table.
def indexes(table_name, name = nil)
- result = query(<<-SQL, name)
- SELECT i.relname, d.indisunique, a.attname
- FROM pg_class t, pg_class i, pg_index d, pg_attribute a
+ schemas = schema_search_path.split(/,/).map { |p| quote(p) }.join(',')
+ result = query(<<-SQL, name)
+ SELECT distinct i.relname, d.indisunique, a.attname
+ FROM pg_class t, pg_class i, pg_index d, pg_attribute a
WHERE i.relkind = 'i'
AND d.indexrelid = i.oid
AND d.indisprimary = 'f'
AND t.oid = d.indrelid
AND t.relname = '#{table_name}'
+ AND i.relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname IN (#{schemas}) )
AND a.attrelid = t.oid
AND ( d.indkey[0]=a.attnum OR d.indkey[1]=a.attnum
OR d.indkey[2]=a.attnum OR d.indkey[3]=a.attnum