Class: ActiveRecord::HierarchicalQuery::Visitors::PostgreSQL::Orderings

Inherits:
Orderings
  • Object
show all
Defined in:
lib/active_record/hierarchical_query/visitors/postgresql/orderings.rb

Constant Summary collapse

NATURAL_SORT_TYPES =
Set[
    :integer, :float, :decimal,
    :datetime, :timestamp, :time, :date,
    :boolean, :itet, :cidr, :ltree
]

Constants inherited from Orderings

Orderings::ORDERING_COLUMN_ALIAS

Instance Attribute Summary

Attributes inherited from Visitor

#query

Instance Method Summary collapse

Methods inherited from Orderings

#visit_cte, #visit_joined_relation

Methods inherited from Visitor

#initialize

Constructor Details

This class inherits a constructor from ActiveRecord::HierarchicalQuery::Visitors::Visitor

Instance Method Details

#visit_non_recursive(arel) ⇒ Object



16
17
18
19
20
# File 'lib/active_record/hierarchical_query/visitors/postgresql/orderings.rb', line 16

def visit_non_recursive(arel)
  project(arel) do
    Arel::Nodes::PostgresArray.new([row_number_expression]).as(column_name)
  end
end

#visit_recursive(arel) ⇒ Object



22
23
24
25
26
# File 'lib/active_record/hierarchical_query/visitors/postgresql/orderings.rb', line 22

def visit_recursive(arel)
  project(arel) do
    Arel::Nodes::ArrayConcat.new(recursive_table[column_name], row_number_expression)
  end
end