diff options
author | Alexander Staubo <alex@origo.no> | 2012-02-23 14:06:05 +0100 |
---|---|---|
committer | Alexander Staubo <alex@origo.no> | 2012-02-23 14:06:05 +0100 |
commit | 2db4ec6a28a59a3f74a4979ae5bc117e5c7573c4 (patch) | |
tree | 8670d0a9f828d53faab7692ae7945836732e4ba4 /lib/arel/visitors/to_sql.rb | |
parent | a1a6fbc189d0cb8c44606eafcb8bda7a010554c0 (diff) | |
download | rails-2db4ec6a28a59a3f74a4979ae5bc117e5c7573c4.tar.gz rails-2db4ec6a28a59a3f74a4979ae5bc117e5c7573c4.tar.bz2 rails-2db4ec6a28a59a3f74a4979ae5bc117e5c7573c4.zip |
Add #extract, which produces ANSI SQL function EXTRACT(<field> from <expr>).
Diffstat (limited to 'lib/arel/visitors/to_sql.rb')
-rw-r--r-- | lib/arel/visitors/to_sql.rb | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb index c22df6289d..a6be451e6f 100644 --- a/lib/arel/visitors/to_sql.rb +++ b/lib/arel/visitors/to_sql.rb @@ -272,6 +272,10 @@ key on UpdateManager using UpdateManager#key= }.join(', ')})#{o.alias ? " AS #{visit o.alias}" : ''}" end + def visit_Arel_Nodes_Extract o + "EXTRACT(#{o.field.to_s.upcase} FROM #{visit o.expr})#{o.alias ? " AS #{visit o.alias}" : ''}" + end + def visit_Arel_Nodes_Count o "COUNT(#{o.distinct ? 'DISTINCT ' : ''}#{o.expressions.map { |x| visit x |