diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2015-05-18 10:31:02 -0700 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2015-05-18 10:32:52 -0700 |
commit | 684caf55038234374a17c1e010e8b18d2dc0c90f (patch) | |
tree | 1fc0e64ae1b806b3f60953106ce71f43b245432e /activerecord | |
parent | 50999974e80ee9ddf3d81c3b9733f84f5646705c (diff) | |
download | rails-684caf55038234374a17c1e010e8b18d2dc0c90f.tar.gz rails-684caf55038234374a17c1e010e8b18d2dc0c90f.tar.bz2 rails-684caf55038234374a17c1e010e8b18d2dc0c90f.zip |
Fix `serial?` with quoted sequence name
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/postgresql/column.rb | 3 | ||||
-rw-r--r-- | activerecord/test/cases/primary_keys_test.rb | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/column.rb b/activerecord/lib/active_record/connection_adapters/postgresql/column.rb index be13ead120..bfa03fa136 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql/column.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql/column.rb @@ -8,7 +8,8 @@ module ActiveRecord def serial? return unless default_function - %r{\Anextval\('(?<table_name>.+)_#{name}_seq'::regclass\)\z} === default_function + table_name = @table_name || '(?<table_name>.+)' + %r{\Anextval\('"?#{table_name}_#{name}_seq"?'::regclass\)\z} === default_function end end end diff --git a/activerecord/test/cases/primary_keys_test.rb b/activerecord/test/cases/primary_keys_test.rb index 83be9a75d8..b8433f0bba 100644 --- a/activerecord/test/cases/primary_keys_test.rb +++ b/activerecord/test/cases/primary_keys_test.rb @@ -175,6 +175,14 @@ class PrimaryKeysTest < ActiveRecord::TestCase dashboard = Dashboard.first assert_equal '2', dashboard.id end + + if current_adapter?(:PostgreSQLAdapter) + def test_serial_with_quoted_sequence_name + column = MixedCaseMonkey.columns_hash[MixedCaseMonkey.primary_key] + assert_equal "nextval('\"mixed_case_monkeys_monkeyID_seq\"'::regclass)", column.default_function + assert column.serial? + end + end end class PrimaryKeyWithNoConnectionTest < ActiveRecord::TestCase |