

def _parse_compound_select_query(self, node, alias_map, conv):
    csq = 'compound_select_query'
    if ((node.rhs._node_type == csq) and (node.lhs._node_type != csq)):
        (first_q, second_q) = (node.rhs, node.lhs)
        inv = True
    else:
        (first_q, second_q) = (node.lhs, node.rhs)
        inv = False
    new_map = self.alias_map_class()
    if (first_q._node_type == csq):
        new_map._counter = alias_map._counter
    (first, first_p) = self.generate_select(first_q, new_map)
    (second, second_p) = self.generate_select(second_q, self.calculate_alias_map(second_q, new_map))
    if inv:
        (l, lp, r, rp) = (second, second_p, first, first_p)
    else:
        (l, lp, r, rp) = (first, first_p, second, second_p)
    if node.database.compound_select_parentheses:
        sql = ('((%s) %s (%s))' % (l, node.operator, r))
    else:
        sql = ('(%s %s %s)' % (l, node.operator, r))
    return (sql, (lp + rp))

dataset/ETHPy150Open coleifer/peewee/peewee.py QueryCompiler._parse_compound_select_query/original