class DDQL::CoalesceOperator

Public Class Methods

new() click to toggle source
Calls superclass method DDQL::AggOperator::new
# File lib/ddql/coalesce_operator.rb, line 3
def initialize
  super("COALESCE", "Coalesce", return_type: :match)
end

Public Instance Methods

parse(parser, token, expression: nil) click to toggle source
# File lib/ddql/coalesce_operator.rb, line 7
def parse(parser, token, expression: nil)
  new_expression = parser.parse(precedence: precedence)
  if expression
    expression = expression.merge(new_expression)
  else
    expression = new_expression
  end

  left_factor, right_factor = expression[:string].split('|', 2)

  {
    op_coalesce: [
      {factor: left_factor},
      {factor: right_factor},
    ]
  }
end