Class: Veritas::Optimizer::Algebra::Product::TableDeeLeft
- Inherits:
-
Veritas::Optimizer::Algebra::Product
- Object
- Veritas::Optimizer
- Relation::Operation::Binary
- Relation::Operation::Combination
- Veritas::Optimizer::Algebra::Product
- Veritas::Optimizer::Algebra::Product::TableDeeLeft
- Defined in:
- lib/veritas/optimizer/algebra/product.rb
Overview
Optimize when left operand is a TABLE DEE
Constant Summary
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 a TABLE DEE.
-
#optimize ⇒ Relation
private
A Product with a left TABLE DEE is equivalent to the right operand.
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 a TABLE DEE
18 19 20 21 |
# File 'lib/veritas/optimizer/algebra/product.rb', line 18 def optimizable? left = self.left left.header.empty? && ! left.kind_of?(Veritas::Relation::Empty) end |
#optimize ⇒ Relation
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.
A Product with a left TABLE DEE is equivalent to the right operand
28 29 30 |
# File 'lib/veritas/optimizer/algebra/product.rb', line 28 def optimize right end |