Sha256: d7aa2feff9cbe4aba8c3d170358c7a3be5ca020d8c5c7ac90ca1ffc4ca43011e
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
module Veritas class Optimizer module Algebra # Abstract base class representing Join optimizations class Join < Relation::Operation::Combination # Optimize when operand headers are equivalent class EqualHeaders < self # Test if the operands' headers are equal # # @return [Boolean] # # @api private def optimizable? left.header.eql?(right.header) end # A Join with equal headers is an Intersection # # @return [Algebra::Intersection] # # @api private def optimize Veritas::Algebra::Intersection.new(left, right).optimize end end # class EqualHeaders Veritas::Algebra::Join.optimizer = chain( EmptyLeft, EmptyRight, EqualHeaders, MaterializedOperand, UnoptimizedOperand ) end # class Join end # module Algebra end # class Optimizer end # module Veritas
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
veritas-0.0.2 | lib/veritas/optimizer/algebra/join.rb |