class Axiom::Optimizer::Algebra::Summarization
Abstract base class representing Summarization
optimizations
Attributes
summarize_per[R]
summarizers[R]
The optimized summarizers
@return [Hash{Attribute => Function}]
@api private
Public Class Methods
new(*)
click to toggle source
Initialize a Summarization
optimizer
@return [undefined]
@api private
Calls superclass method
# File lib/axiom/optimizer/algebra/summarization.rb, line 29 def initialize(*) super @summarize_per = optimize_summarize_per @summarizers = optimize_summarizers end
Private Instance Methods
optimize_summarize_per()
click to toggle source
Optimize the summarize per relation
@return [Relation]
@api private
# File lib/axiom/optimizer/algebra/summarization.rb, line 42 def optimize_summarize_per operation.summarize_per.optimize end
optimize_summarizers()
click to toggle source
Optimize the summarizers
@return [Hash{Attribute => Function}]
@api private
# File lib/axiom/optimizer/algebra/summarization.rb, line 51 def optimize_summarizers Function.optimize_functions(operation.summarizers) end
wrap_operand(operand = operand.operand)
click to toggle source
Wrap the operand’s operand in a Summarization
@return [Summarization]
@api private
# File lib/axiom/optimizer/algebra/summarization.rb, line 60 def wrap_operand(operand = operand.operand) operand.summarize(summarize_per, summarizers) end