diff options
author | Travis Jeffery <travisjeffery@gmail.com> | 2012-03-07 04:22:07 +0000 |
---|---|---|
committer | Travis Jeffery <travisjeffery@gmail.com> | 2012-03-07 05:27:12 +0000 |
commit | 577971f05a838da3ba74ba49d776a83f6bfe1aee (patch) | |
tree | 274cae8b509dfcf181d2f9107906fda798ebc9a4 | |
parent | b4ac72c63890e139745f32a5c642ead548e038ba (diff) | |
download | rails-577971f05a838da3ba74ba49d776a83f6bfe1aee.tar.gz rails-577971f05a838da3ba74ba49d776a83f6bfe1aee.tar.bz2 rails-577971f05a838da3ba74ba49d776a83f6bfe1aee.zip |
Add #schema_names to PostgreSQL Adapter.
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb | 11 | ||||
-rw-r--r-- | activerecord/test/cases/adapters/postgresql/schema_test.rb | 4 |
2 files changed, 15 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index d2126a3e19..f4efaa9b20 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -978,6 +978,17 @@ module ActiveRecord end_sql end + # Returns an array of schema names. + def schema_names + query(<<-SQL).flatten + SELECT nspname + FROM pg_namespace + WHERE nspname !~ '^pg_.*' + AND nspname NOT IN ('information_schema') + ORDER by nspname; + SQL + end + # Sets the schema search path to a string of comma-separated schema names. # Names beginning with $ have to be quoted (e.g. $user => '$user'). # See: http://www.postgresql.org/docs/current/static/ddl-schemas.html diff --git a/activerecord/test/cases/adapters/postgresql/schema_test.rb b/activerecord/test/cases/adapters/postgresql/schema_test.rb index 18c81d2b09..1c56dd76f6 100644 --- a/activerecord/test/cases/adapters/postgresql/schema_test.rb +++ b/activerecord/test/cases/adapters/postgresql/schema_test.rb @@ -71,6 +71,10 @@ class SchemaTest < ActiveRecord::TestCase @connection.execute "DROP SCHEMA #{SCHEMA_NAME} CASCADE" end + def test_schema_names + assert_equal ["public", "test_schema", "test_schema2"], @connection.schema_names + end + def test_schema_change_with_prepared_stmt altered = false @connection.exec_query "select * from developers where id = $1", 'sql', [[nil, 1]] |