class ActiveRecord::HierarchicalQuery::CTE::NonRecursiveTerm
Constants
- DISALLOWED_CLAUSES
Attributes
builder[R]
Public Class Methods
new(builder)
click to toggle source
@param [ActiveRecord::HierarchicalQuery::CTE::QueryBuilder] builder
# File lib/active_record/hierarchical_query/cte/non_recursive_term.rb, line 13 def initialize(builder) @builder = builder end
Public Instance Methods
arel()
click to toggle source
# File lib/active_record/hierarchical_query/cte/non_recursive_term.rb, line 27 def arel arel = scope.arel builder.cycle_detector.apply_to_non_recursive(arel) end
bind_values()
click to toggle source
# File lib/active_record/hierarchical_query/cte/non_recursive_term.rb, line 18 def bind_values scope.bound_attributes end
Private Instance Methods
columns()
click to toggle source
# File lib/active_record/hierarchical_query/cte/non_recursive_term.rb, line 42 def columns columns = builder.columns.to_a if query.orderings.any? columns << ordering end columns end
ordering()
click to toggle source
# File lib/active_record/hierarchical_query/cte/non_recursive_term.rb, line 52 def ordering value = query.orderings.row_number_expression column_name = query.ordering_column_name Arel::Nodes::PostgresArray.new([value]).as(column_name) end
scope()
click to toggle source
# File lib/active_record/hierarchical_query/cte/non_recursive_term.rb, line 34 def scope @scope ||= query. start_with_value. select(columns). except(*DISALLOWED_CLAUSES). reorder(nil) end