Class: Veritas::Optimizer::Algebra::Restriction

Inherits:
Relation::Operation::Unary show all
Defined in:
lib/veritas/optimizer/algebra/restriction.rb

Overview

Abstract base class representing Restriction optimizations

Defined Under Namespace

Classes: CombinationOperand, Contradiction, JoinOperand, OrderOperand, ProductOperand, RestrictionOperand, SetOperand, Tautology, UnoptimizedOperand

Constant Summary

Constants inherited from Veritas::Optimizer

Noop, VERSION

Instance Attribute Summary collapse

Attributes inherited from Relation::Operation::Unary

#header

Attributes included from Function::Unary

#operand

Attributes inherited from Veritas::Optimizer

#operation

Instance Method Summary collapse

Methods inherited from Veritas::Optimizer

chain, #optimizable?, #optimize

Constructor Details

#initializeundefined

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.

Initialize an Restriction optimizer



22
23
24
25
# File 'lib/veritas/optimizer/algebra/restriction.rb', line 22

def initialize(*)
  super
  @predicate = Function.optimize_operand(operation.predicate)
end

Instance Attribute Details

#predicateFunction (readonly)

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.

The optimized predicate

Returns:



15
16
17
# File 'lib/veritas/optimizer/algebra/restriction.rb', line 15

def predicate
  @predicate
end