diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2016-01-16 04:18:21 -0200 |
---|---|---|
committer | Rafael França <rafaelmfranca@gmail.com> | 2016-01-16 04:18:21 -0200 |
commit | de2259791cd21e80d44ec7c7562324c73ff85699 (patch) | |
tree | 06769112a75a6e063147575d4b3e3f29cf3e9753 /activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb | |
parent | cff9cd9fe754ed8d8b7d6656f5d3a5a26f00f216 (diff) | |
parent | 744552f72d49c222d6cc42ab8bad9a16a812377a (diff) | |
download | rails-de2259791cd21e80d44ec7c7562324c73ff85699.tar.gz rails-de2259791cd21e80d44ec7c7562324c73ff85699.tar.bz2 rails-de2259791cd21e80d44ec7c7562324c73ff85699.zip |
Merge pull request #20005 from kamipo/default_expression_support
Add `:expression` option support on the schema default
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb | 11 |
1 files changed, 8 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 1c20e4700f..2de6fbfaf0 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -512,8 +512,13 @@ module ActiveRecord def extract_value_from_default(default) # :nodoc: case default # Quoted types - when /\A[\(B]?'(.*)'::/m - $1.gsub("''".freeze, "'".freeze) + when /\A[\(B]?'(.*)'.*::"?([\w. ]+)"?(?:\[\])?\z/m + # The default 'now'::date is CURRENT_DATE + if $1 == "now".freeze && $2 == "date".freeze + nil + else + $1.gsub("''".freeze, "'".freeze) + end # Boolean types when 'true'.freeze, 'false'.freeze default @@ -535,7 +540,7 @@ module ActiveRecord end def has_default_function?(default_value, default) # :nodoc: - !default_value && (%r{\w+\(.*\)} === default) + !default_value && (%r{\w+\(.*\)|\(.*\)::\w+} === default) end def load_additional_types(type_map, oids = nil) # :nodoc: |