aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2014-06-28 14:44:49 -0600
committerSean Griffin <sean@thoughtbot.com>2014-06-28 14:50:30 -0600
commitb404613c977a5cc31c6748723e903fa5a0709c3b (patch)
tree6b64495c4717e92317c81c26f989686e21b88122 /activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
parentb44174f8c8f3b9b8040955f981d30e64558f0044 (diff)
downloadrails-b404613c977a5cc31c6748723e903fa5a0709c3b.tar.gz
rails-b404613c977a5cc31c6748723e903fa5a0709c3b.tar.bz2
rails-b404613c977a5cc31c6748723e903fa5a0709c3b.zip
Always pass a column with a type object to quote
The only case where we got a column that was not `nil`, but did not respond to `cast_type` was when type casting the default value during schema creation. We can look up the cast type, and add that object to the column definition. Will allow us to consistently rely on the type objects for type casting in all directions.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
index 596ebca5d6..e09672d239 100644
--- a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
@@ -31,6 +31,14 @@ module ActiveRecord
super
end
end
+
+ def type_for_column(column)
+ if column.array
+ @conn.lookup_cast_type("#{column.sql_type}[]")
+ else
+ super
+ end
+ end
end
module SchemaStatements