Class: Veritas::Optimizer::Algebra::Restriction::CombinationOperand
- Inherits:
-
Veritas::Optimizer::Algebra::Restriction
- Object
- Veritas::Optimizer
- Relation::Operation::Unary
- Veritas::Optimizer::Algebra::Restriction
- Veritas::Optimizer::Algebra::Restriction::CombinationOperand
- Defined in:
- lib/veritas/optimizer/algebra/restriction.rb
Overview
Optimize when the operand is a combine operation
Direct Known Subclasses
Constant Summary
Constants inherited from Veritas::Optimizer
Instance Attribute Summary
Attributes inherited from Veritas::Optimizer::Algebra::Restriction
Attributes inherited from Relation::Operation::Unary
Attributes included from Function::Unary
Attributes inherited from Veritas::Optimizer
Instance Method Summary collapse
-
#optimizable? ⇒ Boolean
private
Test if the restriction is commutative.
-
#optimize ⇒ Restriction
private
Distribute the restriction across the operation and apply to the operands.
Methods inherited from Veritas::Optimizer::Algebra::Restriction
Methods inherited from Relation::Operation::Unary
Methods included from Function::Unary
Methods inherited from Veritas::Optimizer
Constructor Details
This class inherits a constructor from Veritas::Optimizer::Algebra::Restriction
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 restriction is commutative
149 150 151 |
# File 'lib/veritas/optimizer/algebra/restriction.rb', line 149 def optimizable? restriction_commutative? end |
#optimize ⇒ Restriction
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.
Distribute the restriction across the operation and apply to the operands
158 159 160 |
# File 'lib/veritas/optimizer/algebra/restriction.rb', line 158 def optimize left_restriction.send(relation_method, right_restriction).restrict { partition.remainder } end |