Class: Arel::Nodes::SelectStatement
Do not use. This class is for internal use only.
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
NodeExpression,
Node
|
|
|
Instance Chain:
|
|
| Inherits: |
Arel::Nodes::NodeExpression
|
| Defined in: | activerecord/lib/arel/nodes/select_statement.rb |
Class Method Summary
- .new(relation = nil) ⇒ SelectStatement constructor
Instance Attribute Summary
Instance Method Summary
-
#==(other)
Alias for #eql?.
- #eql?(other) ⇒ Boolean (also: #==)
- #hash
- #initialize_copy(other)
::Arel::Math - Included
::Arel::OrderPredications - Included
::Arel::AliasPredication - Included
::Arel::Predications - Included
::Arel::Expressions - Included
Node - Inherited
| #and | Factory method to create an And node. |
| #fetch_attribute, #invert, | |
| #not | Factory method to create a |
| #or | |
| #to_sql | FIXME: this method should go away. |
::Arel::FactoryMethods - Included
| #cast, #coalesce, #create_and, #create_false, #create_join, #create_on, #create_string_join, #create_table_alias, #create_true, #grouping, | |
| #lower | Create a LOWER() function. |
Constructor Details
.new(relation = nil) ⇒ SelectStatement
# File 'activerecord/lib/arel/nodes/select_statement.rb', line 9
def initialize(relation = nil) super() @cores = [SelectCore.new(relation)] @orders = [] @limit = nil @lock = nil @offset = nil @with = nil end
Instance Attribute Details
#cores (readonly)
[ GitHub ]# File 'activerecord/lib/arel/nodes/select_statement.rb', line 6
attr_reader :cores
#limit (rw)
[ GitHub ]#lock (rw)
[ GitHub ]#offset (rw)
[ GitHub ]#orders (rw)
[ GitHub ]#with (rw)
[ GitHub ]Instance Method Details
#==(other)
Alias for #eql?.
# File 'activerecord/lib/arel/nodes/select_statement.rb', line 38
alias :== :eql?
#eql?(other) ⇒ Boolean
Also known as: #==
#hash
[ GitHub ]# File 'activerecord/lib/arel/nodes/select_statement.rb', line 25
def hash [@cores, @orders, @limit, @lock, @offset, @with].hash end
#initialize_copy(other)
[ GitHub ]# File 'activerecord/lib/arel/nodes/select_statement.rb', line 19
def initialize_copy(other) super @cores = @cores.map { |x| x.clone } @orders = @orders.map { |x| x.clone } end