class Axiom::Optimizer::Algebra::Summarization::EmptyOperand
Optimize when the operand is Empty
Public Class Methods
extension_default(function)
click to toggle source
Return the default value for a function
@param [Object] function
@return [Object]
@api private
# File lib/axiom/optimizer/algebra/summarization.rb, line 74 def self.extension_default(function) if function.respond_to?(:default) function.finalize(function.default) end end
Public Instance Methods
optimizable?()
click to toggle source
Test if the operand is empty
@return [Boolean]
@api private
# File lib/axiom/optimizer/algebra/summarization.rb, line 85 def optimizable? operand.kind_of?(Axiom::Relation::Empty) end
optimize()
click to toggle source
Return an extended relation with the same headers
@return [Extension]
@api private
# File lib/axiom/optimizer/algebra/summarization.rb, line 94 def optimize summarize_per.extend(extensions) end
Private Instance Methods
extensions()
click to toggle source
Return the extensions for the optimized relation
@return [Hash{Attribute => call}]
@api private
# File lib/axiom/optimizer/algebra/summarization.rb, line 105 def extensions extensions = {} operation.summarizers.each do |attribute, function| extensions[attribute] = self.class.extension_default(function) end extensions end