class ConceptQL::Operators::Filter

Public Instance Methods

query(db) click to toggle source
# File lib/conceptql/operators/filter.rb, line 11
def query(db)
  rhs = right.evaluate(db)
  rhs = rhs.from_self.select_group(:person_id, :criterion_id, :criterion_domain)
  query = db.from(Sequel.as(left.evaluate(db), :l))
  query = query
    .left_join(Sequel.as(rhs, :r), l__person_id: :r__person_id, l__criterion_id: :r__criterion_id, l__criterion_domain: :r__criterion_domain)
    .exclude(r__criterion_id: nil)
    .select_all(:l)
  db.from(query)
end