Class: Veritas::Optimizer::Algebra::Join::LeftMaterializedOperand
- Inherits:
-
Veritas::Optimizer::Algebra::Join
- Object
- Veritas::Optimizer
- Relation::Operation::Binary
- Relation::Operation::Combination
- Veritas::Optimizer::Algebra::Join
- Veritas::Optimizer::Algebra::Join::LeftMaterializedOperand
- Defined in:
- lib/veritas/optimizer/algebra/join.rb
Overview
Optimize when the left operand is materialized
Constant Summary
Constants inherited from Veritas::Optimizer::Algebra::Join
Constants inherited from Veritas::Optimizer
Instance Attribute Summary
Attributes included from Function::Binary
Attributes inherited from Veritas::Optimizer
Instance Method Summary collapse
-
#optimizable? ⇒ Boolean
private
Test if the left operand is materialized.
-
#optimize ⇒ Algebra::Join
private
Return the join of the left and right with the right restricted.
Methods included from Function::Binary
Methods inherited from Veritas::Optimizer
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 left operand is materialized
88 89 90 |
# File 'lib/veritas/optimizer/algebra/join.rb', line 88 def optimizable? left.materialized? && ! right_matching_left? end |
#optimize ⇒ Algebra::Join
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.
Return the join of the left and right with the right restricted
97 98 99 |
# File 'lib/veritas/optimizer/algebra/join.rb', line 97 def optimize left.join(right.restrict { materialized_predicate }) end |