class ConceptQL::Operators::Complement
Public Instance Methods
query(db)
click to toggle source
# File lib/conceptql/operators/complement.rb, line 16 def query(db) upstream = upstreams.first upstream.domains(db).map do |domain| positive_query = db.from(upstream.evaluate(db)) .select(:criterion_id) .exclude(:criterion_id => nil) .where(:criterion_domain => domain.to_s) query = db.from(make_table_name(domain)) .exclude(make_domain_id(domain) => positive_query) db.from(select_it(query.clone(:force_columns=>table_columns(make_table_name(domain))), domain)) end.inject do |union_query, q| union_query.union(q, all: true) end end