class Axiom::Optimizer::Algebra::Rename::SetOperand

Optimize when the operand is a Set

Public Instance Methods

optimizable?() click to toggle source

Test if the operand is a Set

@return [Boolean]

@api private

# File lib/axiom/optimizer/algebra/rename.rb, line 194
def optimizable?
  operand.kind_of?(Axiom::Relation::Operation::Set)
end
optimize() click to toggle source

Wrap each operand in the Set in a Rename

@return [Set]

@api private

# File lib/axiom/optimizer/algebra/rename.rb, line 203
def optimize
  operand.class.new(wrap_left, wrap_right)
end

Private Instance Methods

wrap_left() click to toggle source

Utility method to wrap the left operand in a Rename

@return [Rename]

@api private

# File lib/axiom/optimizer/algebra/rename.rb, line 214
def wrap_left
  wrap_operand(operand.left)
end
wrap_right() click to toggle source

Utility method to wrap the right operand in a Rename

@return [Rename]

@api private

# File lib/axiom/optimizer/algebra/rename.rb, line 223
def wrap_right
  wrap_operand(operand.right)
end