module Bmg::Sql::Processor::JoinSupport

Public Instance Methods

on_main_exp(sexpr) click to toggle source
# File lib/bmg/sql/processor/join_support.rb, line 6
def on_main_exp(sexpr)
  joined = apply_join_strategy(sexpr.select_exp, right.select_exp)
  merge_with_exps(sexpr, right, joined)
end
Also aliased as: on_with_exp, on_select_exp
on_select_exp(sexpr)
Alias for: on_main_exp
on_with_exp(sexpr)
Alias for: on_main_exp

Private Instance Methods

join_predicate(left, right, commons) click to toggle source
# File lib/bmg/sql/processor/join_support.rb, line 15
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