aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/nodes
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-04-21 15:28:21 -0500
committerAaron Patterson <aaron.patterson@gmail.com>2011-04-21 15:28:21 -0500
commitcae83ce964b9919b890bb7fa6f920a536e6b5425 (patch)
treec0d11479ee90c9ead48cef7a3db1e297ee333489 /lib/arel/nodes
parent885a3acb1ce183189b8628f14fa834b3e1ba39ec (diff)
downloadrails-cae83ce964b9919b890bb7fa6f920a536e6b5425.tar.gz
rails-cae83ce964b9919b890bb7fa6f920a536e6b5425.tar.bz2
rails-cae83ce964b9919b890bb7fa6f920a536e6b5425.zip
adding a DISTINCT node
Diffstat (limited to 'lib/arel/nodes')
-rw-r--r--lib/arel/nodes/select_core.rb17
-rw-r--r--lib/arel/nodes/unary.rb6
2 files changed, 16 insertions, 7 deletions
diff --git a/lib/arel/nodes/select_core.rb b/lib/arel/nodes/select_core.rb
index 7f577e0a05..bee0a5930c 100644
--- a/lib/arel/nodes/select_core.rb
+++ b/lib/arel/nodes/select_core.rb
@@ -2,15 +2,18 @@ module Arel
module Nodes
class SelectCore < Arel::Nodes::Node
attr_accessor :top, :projections, :wheres, :groups
- attr_accessor :having, :source
+ attr_accessor :having, :source, :set_quantifier
def initialize
- @source = JoinSource.new nil
- @top = nil
- @projections = []
- @wheres = []
- @groups = []
- @having = nil
+ @source = JoinSource.new nil
+ @top = nil
+
+ # http://savage.net.au/SQL/sql-92.bnf.html#set%20quantifier
+ @set_quantifier = nil
+ @projections = []
+ @wheres = []
+ @groups = []
+ @having = nil
end
def from
diff --git a/lib/arel/nodes/unary.rb b/lib/arel/nodes/unary.rb
index 1c834913fa..e6e40e6b13 100644
--- a/lib/arel/nodes/unary.rb
+++ b/lib/arel/nodes/unary.rb
@@ -23,5 +23,11 @@ module Arel
}.each do |name|
const_set(name, Class.new(Unary))
end
+
+ class Distinct < Unary
+ def initialize expr = nil
+ super
+ end
+ end
end
end