#NEWLINE# def add_q( self , q_object ) : #NEWLINE# #INDENT# '\n        A preprocessor for the internal _add_q(). Responsible for doing final\n        join promotion.\n        ' #NEWLINE# existing_inner = set ( ( a for a in self . alias_map if ( self . alias_map [ a ] . join_type == INNER ) ) ) #NEWLINE# ( clause , _ ) = self . _add_q ( q_object , self . used_aliases ) #NEWLINE# if clause : #NEWLINE# #INDENT# self . where . add ( clause , AND ) #NEWLINE# #UNINDENT# self . demote_joins ( existing_inner )