Class: Axiom::Optimizer::Algebra::Projection::UnionOperand
- Inherits:
-
Axiom::Optimizer::Algebra::Projection
- Object
- Axiom::Optimizer
- Relation::Operation::Unary
- Axiom::Optimizer::Algebra::Projection
- Axiom::Optimizer::Algebra::Projection::UnionOperand
- Defined in:
- lib/axiom/optimizer/algebra/projection.rb
Overview
Optimize when the operand is a Union
Constant Summary
Constants inherited from Axiom::Optimizer
Instance Attribute Summary
Attributes inherited from Relation::Operation::Unary
Attributes included from Function::Unary
Attributes inherited from Axiom::Optimizer
Instance Method Summary collapse
-
#optimizable? ⇒ Boolean
private
Test if the operand is a Union.
-
#optimize ⇒ Set
private
Wrap each operand in the Union in a Projection.
Methods inherited from Relation::Operation::Unary
Methods included from Function::Unary
Methods inherited from Axiom::Optimizer
Constructor Details
This class inherits a constructor from Axiom::Optimizer::Relation::Operation::Unary
Instance Method Details
#optimizable? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Test if the operand is a Union
120 121 122 |
# File 'lib/axiom/optimizer/algebra/projection.rb', line 120 def optimizable? operand.kind_of?(Axiom::Algebra::Union) end |
#optimize ⇒ Set
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Wrap each operand in the Union in a Projection
129 130 131 |
# File 'lib/axiom/optimizer/algebra/projection.rb', line 129 def optimize wrap_left.union(wrap_right) end |