Class: Axiom::Optimizer::Algebra::Restriction

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

Overview

Abstract base class representing Restriction optimizations

Defined Under Namespace

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

Constant Summary

Constants inherited from Axiom::Optimizer

Identity, VERSION

Instance Attribute Summary collapse

Attributes inherited from Relation::Operation::Unary

#header

Attributes included from Function::Unary

#operand

Attributes inherited from Axiom::Optimizer

#operation

Instance Method Summary collapse

Methods inherited from Axiom::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



23
24
25
26
# File 'lib/axiom/optimizer/algebra/restriction.rb', line 23

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:



16
17
18
# File 'lib/axiom/optimizer/algebra/restriction.rb', line 16

def predicate
  @predicate
end