eql?(other)
click to toggle source
def eql? other
self.class == other.class &&
self.orders == other.orders &&
self.framing == other.framing &&
self.partitions == other.partitions
end
frame(expr)
click to toggle source
def frame(expr)
@framing = expr
end
hash()
click to toggle source
def hash
[@orders, @framing].hash
end
initialize_copy(other)
click to toggle source
Calls superclass method
def initialize_copy other
super
@orders = @orders.map { |x| x.clone }
end
order(*expr)
click to toggle source
def order *expr
@orders.concat expr.map { |x|
String === x || Symbol === x ? Nodes::SqlLiteral.new(x.to_s) : x
}
self
end
partition(*expr)
click to toggle source
def partition *expr
@partitions.concat expr.map { |x|
String === x || Symbol === x ? Nodes::SqlLiteral.new(x.to_s) : x
}
self
end
range(expr = nil)
click to toggle source
def range(expr = nil)
if @framing
Range.new(expr)
else
frame(Range.new(expr))
end
end
rows(expr = nil)
click to toggle source
def rows(expr = nil)
if @framing
Rows.new(expr)
else
frame(Rows.new(expr))
end
end