24 lines
598 B
Ruby
24 lines
598 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Gitlab
|
||
|
module SQL
|
||
|
# Class for building SQL INTERSECT statements.
|
||
|
#
|
||
|
# ORDER BYs are dropped from the relations as the final sort order is not
|
||
|
# guaranteed any way.
|
||
|
#
|
||
|
# Example usage:
|
||
|
#
|
||
|
# hierarchies = [group1.self_and_hierarchy, group2.self_and_hierarchy]
|
||
|
# intersect = Gitlab::SQL::Intersect.new(hierarchies)
|
||
|
# sql = intersect.to_sql
|
||
|
#
|
||
|
# Project.where("id IN (#{sql})")
|
||
|
class Intersect < SetOperator
|
||
|
def self.operator_keyword
|
||
|
'INTERSECT'
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|