def on_conflict(elem: OnConflictInsert, compiler: PGCompiler_psycopg2, **kw): query_string = compiler.visit_insert(elem.insert, **kw) # type: str action = 'ON CONFLICT %s DO NOTHING' if elem.indexes: fields = '(%s)' % ', '.join(elem.indexes) action = action % fields else: action = action % '' return '%s %s' % (query_string, action)
def _append_string(insert_expr: Insert, compiler: PGCompiler_psycopg2, **kw): """ Works only with inline insert :param insert_expr: :param compiler: :param kw: :return: """ query_string = compiler.visit_insert(insert_expr, **kw) if 'append_string' in insert_expr.kwargs: return query_string + " " + insert_expr.kwargs['append_string'] return query_string