diff options
author | Sean Griffin <sean@seantheprogrammer.com> | 2015-03-21 18:47:08 -0600 |
---|---|---|
committer | Sean Griffin <sean@seantheprogrammer.com> | 2015-03-21 18:47:08 -0600 |
commit | 2271f7db17b728234abc2ca66e6cf9a4c55d8e84 (patch) | |
tree | 333c4b263a4a94875ff640ae964e653baffad33b /activerecord | |
parent | b663e26544d46c111c5a7f44e269c624653c42e5 (diff) | |
parent | 9bc4eb7ee180a434ea0f23388e04061583ebb5b9 (diff) | |
download | rails-2271f7db17b728234abc2ca66e6cf9a4c55d8e84.tar.gz rails-2271f7db17b728234abc2ca66e6cf9a4c55d8e84.tar.bz2 rails-2271f7db17b728234abc2ca66e6cf9a4c55d8e84.zip |
Merge pull request #19447 from wallerjake/postgresql_big_int_array_schema_rb
Check subtype limit before using the default limit
Diffstat (limited to 'activerecord')
4 files changed, 16 insertions, 1 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 82d7ab353d..8b35839a50 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -698,4 +698,10 @@ *Yves Senn* +* Fixes #19420. When generating schema.rb using Postgres BigInt[] data type + the limit: 8 was not coming through. This caused it to become Int[] data type + after doing a rebuild off of schema.rb. + + *Jake Waller* + Please check [4-2-stable](https://github.com/rails/rails/blob/4-2-stable/activerecord/CHANGELOG.md) for previous changes. diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/oid/array.rb b/activerecord/lib/active_record/connection_adapters/postgresql/oid/array.rb index fb4e0de2a8..f486c5ecb7 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql/oid/array.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql/oid/array.rb @@ -18,7 +18,7 @@ module ActiveRecord end attr_reader :subtype, :delimiter - delegate :type, :user_input_in_time_zone, to: :subtype + delegate :type, :user_input_in_time_zone, :limit, to: :subtype def initialize(subtype, delimiter = ',') @subtype = subtype diff --git a/activerecord/test/cases/schema_dumper_test.rb b/activerecord/test/cases/schema_dumper_test.rb index 6bf4df70eb..6c099719c0 100644 --- a/activerecord/test/cases/schema_dumper_test.rb +++ b/activerecord/test/cases/schema_dumper_test.rb @@ -248,6 +248,11 @@ class SchemaDumperTest < ActiveRecord::TestCase assert_match %r{t\.integer\s+"bigint_default",\s+limit: 8,\s+default: 0}, output end + def test_schema_dump_includes_limit_on_array_type + output = standard_dump + assert_match %r{t\.integer\s+"big_int_data_points\",\s+limit: 8,\s+array: true}, output + end + if ActiveRecord::Base.connection.supports_extensions? def test_schema_dump_includes_extensions connection = ActiveRecord::Base.connection diff --git a/activerecord/test/schema/postgresql_specific_schema.rb b/activerecord/test/schema/postgresql_specific_schema.rb index f84be0e7f4..008503bc24 100644 --- a/activerecord/test/schema/postgresql_specific_schema.rb +++ b/activerecord/test/schema/postgresql_specific_schema.rb @@ -93,4 +93,8 @@ _SQL t.binary :binary, limit: 100_000 t.text :text, limit: 100_000 end + + create_table :bigint_array, force: true do |t| + t.integer :big_int_data_points, limit: 8, array: true + end end |