Sha256: 0a829d3212039096c084a1a21ad068ebfba0ef26937e1aec992fd89857585606

Contents?: true

Size: 759 Bytes

Versions: 62

Compression:

Stored size: 759 Bytes

Contents

module Bmg
  module Sql
    class Processor
      module JoinSupport

        def on_main_exp(sexpr)
          joined = apply_join_strategy(sexpr.select_exp, right.select_exp)
          merge_with_exps(sexpr, right, joined)
        end
        alias :on_with_exp   :on_main_exp
        alias :on_select_exp :on_main_exp

      private

        def join_predicate(left, right, commons)
          left_d, right_d = left.desaliaser(true), right.desaliaser(true)
          commons.to_a.inject(tautology){|cond, attr|
            left_attr, right_attr = left_d[attr], right_d[attr]
            cond &= Predicate::Factory.eq(left_attr, right_attr)
          }
        end

      end # class JoinSupport
    end # class Processor
  end # module Sql
end # module Bmg

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
bmg-0.23.3 lib/bmg/sql/processor/join_support.rb
bmg-0.23.2 lib/bmg/sql/processor/join_support.rb
bmg-0.23.1 lib/bmg/sql/processor/join_support.rb
bmg-0.23.0 lib/bmg/sql/processor/join_support.rb
bmg-0.21.5 lib/bmg/sql/processor/join_support.rb
bmg-0.21.4 lib/bmg/sql/processor/join_support.rb
bmg-0.20.5 lib/bmg/sql/processor/join_support.rb
bmg-0.19.3 lib/bmg/sql/processor/join_support.rb
bmg-0.21.3 lib/bmg/sql/processor/join_support.rb
bmg-0.21.2 lib/bmg/sql/processor/join_support.rb
bmg-0.21.0 lib/bmg/sql/processor/join_support.rb
bmg-0.20.4 lib/bmg/sql/processor/join_support.rb
bmg-0.20.2 lib/bmg/sql/processor/join_support.rb
bmg-0.20.1 lib/bmg/sql/processor/join_support.rb
bmg-0.20.0 lib/bmg/sql/processor/join_support.rb
bmg-0.19.2 lib/bmg/sql/processor/join_support.rb
bmg-0.19.1 lib/bmg/sql/processor/join_support.rb
bmg-0.19.0 lib/bmg/sql/processor/join_support.rb
bmg-0.18.15 lib/bmg/sql/processor/join_support.rb
bmg-0.18.14 lib/bmg/sql/processor/join_support.rb