diff options
author | Alexander Staubo <alex@bengler.no> | 2013-02-19 22:27:17 +0100 |
---|---|---|
committer | Alexander Staubo <alex@bengler.no> | 2014-06-20 17:08:05 -0400 |
commit | 69e9be95ac233eb7b446920bb49399277ea594ce (patch) | |
tree | 041be9088a60edddebb6dba93ce9dfe16bcd0345 /lib/arel/visitors | |
parent | f50de54a6f0c59ab75526cfdb7896830130ffdf7 (diff) | |
download | rails-69e9be95ac233eb7b446920bb49399277ea594ce.tar.gz rails-69e9be95ac233eb7b446920bb49399277ea594ce.tar.bz2 rails-69e9be95ac233eb7b446920bb49399277ea594ce.zip |
Windowing support for PARTITION BY clause.
Diffstat (limited to 'lib/arel/visitors')
-rw-r--r-- | lib/arel/visitors/dot.rb | 2 | ||||
-rw-r--r-- | lib/arel/visitors/to_sql.rb | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/lib/arel/visitors/dot.rb b/lib/arel/visitors/dot.rb index d96cf7a6a0..f0cefeabd7 100644 --- a/lib/arel/visitors/dot.rb +++ b/lib/arel/visitors/dot.rb @@ -82,12 +82,14 @@ module Arel alias :visit_Arel_Nodes_Range :unary def window o + visit_edge o, "partitions" visit_edge o, "orders" visit_edge o, "framing" end alias :visit_Arel_Nodes_Window :window def named_window o + visit_edge o, "partitions" visit_edge o, "orders" visit_edge o, "framing" visit_edge o, "name" diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb index 7f74ebb402..8a5e1dbf25 100644 --- a/lib/arel/visitors/to_sql.rb +++ b/lib/arel/visitors/to_sql.rb @@ -336,6 +336,12 @@ module Arel def visit_Arel_Nodes_Window o, collector collector << "(" + + if o.partitions.any? + collector << "PARTITION BY " + collector = inject_join o.partitions, collector, ", " + end + if o.orders.any? collector << "ORDER BY " collector = inject_join o.orders, collector, ", " |