diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-10-05 22:21:01 -0700 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-10-05 22:21:01 -0700 |
commit | 9b496d3147260e9b5bf3993626cf0ebd138ea83a (patch) | |
tree | dddf7961f26c97d192ae79047b839e0499df8cbf | |
parent | 14b66d6628158c9a0e08d19bb570f89fd76026cd (diff) | |
parent | 16e4a53b78aacc78712ff6ad4aa2da3a69faff5c (diff) | |
download | rails-9b496d3147260e9b5bf3993626cf0ebd138ea83a.tar.gz rails-9b496d3147260e9b5bf3993626cf0ebd138ea83a.tar.bz2 rails-9b496d3147260e9b5bf3993626cf0ebd138ea83a.zip |
Merge pull request #7850 from senny/5920_postgres_adapter_table_with_capital_letters
postgres, quote table names when fetching the primary key (#5920)
3 files changed, 10 insertions, 1 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 714263faea..ba292e7f0e 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,5 +1,10 @@ ## Rails 4.0.0 (unreleased) ## +* The postgres adapter now supports tables with capital letters. + Fix #5920 + + *Yves Senn* + * `CollectionAssociation#count` returns `0` without querying if the parent record is not persisted. diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb index 8a073bf878..2264595751 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb @@ -314,7 +314,7 @@ module ActiveRecord INNER JOIN pg_depend dep ON attr.attrelid = dep.refobjid AND attr.attnum = dep.refobjsubid INNER JOIN pg_constraint cons ON attr.attrelid = cons.conrelid AND attr.attnum = cons.conkey[1] WHERE cons.contype = 'p' - AND dep.refobjid = '#{table}'::regclass + AND dep.refobjid = '#{quote_table_name(table)}'::regclass end_sql row && row.first diff --git a/activerecord/test/cases/adapters/postgresql/postgresql_adapter_test.rb b/activerecord/test/cases/adapters/postgresql/postgresql_adapter_test.rb index 92e31a3e44..f1362dd15f 100644 --- a/activerecord/test/cases/adapters/postgresql/postgresql_adapter_test.rb +++ b/activerecord/test/cases/adapters/postgresql/postgresql_adapter_test.rb @@ -14,6 +14,10 @@ module ActiveRecord assert_equal 'id', @connection.primary_key('ex') end + def test_primary_key_works_tables_containing_capital_letters + assert_equal 'id', @connection.primary_key('CamelCase') + end + def test_non_standard_primary_key @connection.exec_query('drop table if exists ex') @connection.exec_query('create table ex(data character varying(255) primary key)') |