class ConceptQL::Operators::Except
Public Instance Methods
query(db)
click to toggle source
# File lib/conceptql/operators/except.rb, line 11 def query(db) if ignore_dates? query = db.from(Sequel.as(left.evaluate(db), :l)) .left_join(Sequel.as(right.evaluate(db), :r), l__criterion_id: :r__criterion_id, l__criterion_domain: :r__criterion_domain) .where(r__criterion_id: nil) .select_all(:l) db.from(query) else lquery = left.evaluate(db) rquery = right.evaluate(db) # Set columns so that impala's EXCEPT emulation doesn't use a query to determine them lquery.instance_variable_set(:@columns, query_cols) rquery.instance_variable_set(:@columns, query_cols) if impala? lquery = lquery.except_strategy(:not_exists, :person_id, :criterion_id, :criterion_domain) end lquery.except(rquery) end end
Private Instance Methods
ignore_dates?()
click to toggle source
# File lib/conceptql/operators/except.rb, line 35 def ignore_dates? options[:ignore_dates] end