aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorYves Senn <yves.senn@garaio.com>2012-09-05 13:06:28 +0200
committerYves Senn <yves.senn@garaio.com>2012-09-06 18:01:34 +0200
commit319482d8fe49d70817ffa0f30ab6653b1ea9cbac (patch)
tree5d239c92bc93cee89dce148082644cdbe0c0f78d /activerecord
parente8c9f0513da0fac45ba585cf62739da57603f4ed (diff)
downloadrails-319482d8fe49d70817ffa0f30ab6653b1ea9cbac.tar.gz
rails-319482d8fe49d70817ffa0f30ab6653b1ea9cbac.tar.bz2
rails-319482d8fe49d70817ffa0f30ab6653b1ea9cbac.zip
postgres, map scaled intervals to string datatype (#7518)
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb2
-rw-r--r--activerecord/test/cases/adapters/postgresql/datatype_test.rb4
-rw-r--r--activerecord/test/schema/postgresql_specific_schema.rb3
3 files changed, 6 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
index c508afb33e..d1751d70c6 100644
--- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
@@ -181,7 +181,7 @@ module ActiveRecord
# Date/time types
when /^timestamp with(?:out)? time zone$/
:datetime
- when 'interval'
+ when /^interval(?:|\(\d+\))$/
:string
# Geometric types
when /^(?:point|line|lseg|box|"?path"?|polygon|circle)$/
diff --git a/activerecord/test/cases/adapters/postgresql/datatype_test.rb b/activerecord/test/cases/adapters/postgresql/datatype_test.rb
index a4d9286d52..a7f6d9c580 100644
--- a/activerecord/test/cases/adapters/postgresql/datatype_test.rb
+++ b/activerecord/test/cases/adapters/postgresql/datatype_test.rb
@@ -51,7 +51,7 @@ class PostgresqlDataTypeTest < ActiveRecord::TestCase
@connection.execute("INSERT INTO postgresql_numbers (single, double) VALUES (123.456, 123456.789)")
@first_number = PostgresqlNumber.find(1)
- @connection.execute("INSERT INTO postgresql_times (time_interval) VALUES ('1 year 2 days ago')")
+ @connection.execute("INSERT INTO postgresql_times (time_interval, scaled_time_interval) VALUES ('1 year 2 days ago', '3 weeks ago')")
@first_time = PostgresqlTime.find(1)
@connection.execute("INSERT INTO postgresql_network_addresses (cidr_address, inet_address, mac_address) VALUES('192.168.0/24', '172.16.1.254/32', '01:23:45:67:89:0a')")
@@ -89,6 +89,7 @@ class PostgresqlDataTypeTest < ActiveRecord::TestCase
def test_data_type_of_time_types
assert_equal :string, @first_time.column_for_attribute(:time_interval).type
+ assert_equal :string, @first_time.column_for_attribute(:scaled_time_interval).type
end
def test_data_type_of_network_address_types
@@ -142,6 +143,7 @@ class PostgresqlDataTypeTest < ActiveRecord::TestCase
def test_time_values
assert_equal '-1 years -2 days', @first_time.time_interval
+ assert_equal '-21 days', @first_time.scaled_time_interval
end
def test_network_address_values_ipaddr
diff --git a/activerecord/test/schema/postgresql_specific_schema.rb b/activerecord/test/schema/postgresql_specific_schema.rb
index 2d8c0aa69a..2cd9f30b59 100644
--- a/activerecord/test/schema/postgresql_specific_schema.rb
+++ b/activerecord/test/schema/postgresql_specific_schema.rb
@@ -109,7 +109,8 @@ _SQL
execute <<_SQL
CREATE TABLE postgresql_times (
id SERIAL PRIMARY KEY,
- time_interval INTERVAL
+ time_interval INTERVAL,
+ scaled_time_interval INTERVAL(6)
);
_SQL