diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2013-04-05 14:42:03 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2013-04-05 14:42:03 -0300 |
commit | d25e0c6f6a2764fb2605dc216e5c4b26a74f7e97 (patch) | |
tree | 75bf9fcc5dba32c7dc0d15708dafabe9e32b963b /activerecord | |
parent | 877dfcbb6437acfd56c7ead4f9998b5b0bf82c0e (diff) | |
parent | 661365e7ce445955996c9024b76cea84e4f31a02 (diff) | |
download | rails-d25e0c6f6a2764fb2605dc216e5c4b26a74f7e97.tar.gz rails-d25e0c6f6a2764fb2605dc216e5c4b26a74f7e97.tar.bz2 rails-d25e0c6f6a2764fb2605dc216e5c4b26a74f7e97.zip |
Merge pull request #10098 from subwindow/postgres_dump_bigint_default
Correctly parse bigint defaults in PostgreSQL
Conflicts:
activerecord/CHANGELOG.md
Diffstat (limited to 'activerecord')
4 files changed, 12 insertions, 1 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index e1d3686b95..0ab01d6183 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,5 +1,10 @@ ## Rails 4.0.0 (unreleased) ## +* Default values for PostgreSQL bigint types now get parsed and dumped to the + schema correctly. + + *Erik Peterson* + * Fix associations with `:inverse_of` option when building association with a block. Inside the block the parent object was different then after the block. diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index e34e1fc10c..bf403c3ae0 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -80,7 +80,7 @@ module ActiveRecord when /\A'(.*)'::(num|date|tstz|ts|int4|int8)range\z/m $1 # Numeric types - when /\A\(?(-?\d+(\.\d*)?\)?)\z/ + when /\A\(?(-?\d+(\.\d*)?\)?(::bigint)?)\z/ $1 # Character types when /\A\(?'(.*)'::.*\b(?:character varying|bpchar|text)\z/m diff --git a/activerecord/test/cases/schema_dumper_test.rb b/activerecord/test/cases/schema_dumper_test.rb index 9944527d48..a48ae1036f 100644 --- a/activerecord/test/cases/schema_dumper_test.rb +++ b/activerecord/test/cases/schema_dumper_test.rb @@ -242,6 +242,11 @@ class SchemaDumperTest < ActiveRecord::TestCase end if current_adapter?(:PostgreSQLAdapter) + def test_schema_dump_includes_bigint_default + output = standard_dump + assert_match %r{t.integer\s+"bigint_default",\s+limit: 8,\s+default: 0}, output + end + def test_schema_dump_includes_extensions connection = ActiveRecord::Base.connection skip unless connection.supports_extensions? diff --git a/activerecord/test/schema/postgresql_specific_schema.rb b/activerecord/test/schema/postgresql_specific_schema.rb index d8271ac8d1..6b7012a172 100644 --- a/activerecord/test/schema/postgresql_specific_schema.rb +++ b/activerecord/test/schema/postgresql_specific_schema.rb @@ -32,6 +32,7 @@ ActiveRecord::Schema.define do char3 text default 'a text field', positive_integer integer default 1, negative_integer integer default -1, + bigint_default bigint default 0::bigint, decimal_number decimal(3,2) default 2.78, multiline_default text DEFAULT '--- [] |