From 0270363f5c3868f921ee028943aca125774afdd5 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Mon, 1 Dec 2014 21:28:50 +0800 Subject: Fix value extracted from negative integers for PostgreSQL. Fixes: https://github.com/rails/rails/issues/17856. --- .../lib/active_record/connection_adapters/postgresql_adapter.rb | 2 +- activerecord/test/cases/defaults_test.rb | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index 3698957d8d..fd3232e902 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -532,7 +532,7 @@ module ActiveRecord when 'true', 'false' default # Numeric types - when /\A\(?(-?\d+(\.\d*)?\)?(::bigint)?)\z/ + when /\A\(?(-?\d+(\.\d*)?)\)?(::bigint)?\z/ $1 # Object identifier types when /\A-?\d+\z/ diff --git a/activerecord/test/cases/defaults_test.rb b/activerecord/test/cases/defaults_test.rb index c089e63128..3e6032e266 100644 --- a/activerecord/test/cases/defaults_test.rb +++ b/activerecord/test/cases/defaults_test.rb @@ -36,6 +36,10 @@ class DefaultTest < ActiveRecord::TestCase assert( "--- []\n\n" == Default.columns_hash['multiline_default'].default || "--- []\\012\\012" == Default.columns_hash['multiline_default'].default) end + + def test_default_negative_integer + assert_equal "-1", Default.columns_hash['negative_integer'].default + end end end -- cgit v1.2.3