From 4e9ab7a72f0ad506cf519069fd67127f63e5f2aa Mon Sep 17 00:00:00 2001 From: Robin Thomas Date: Thu, 14 Apr 2016 12:57:15 -0400 Subject: Add ON CONFLICT support for Postgresql Fixes: #3529 Co-authored-by: Mike Bayer Change-Id: Ie3bf6ad70d9be9f0e44938830e922db03573991a Pull-request: https://github.com/zzzeek/sqlalchemy/pull/258 --- lib/sqlalchemy/sql/compiler.py | 6 ++++++ lib/sqlalchemy/sql/dml.py | 1 + 2 files changed, 7 insertions(+) (limited to 'lib/sqlalchemy/sql') diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index 6d9ab9039..94c7db20a 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -1984,6 +1984,12 @@ class SQLCompiler(Compiled): text += " VALUES (%s)" % \ ', '.join([c[1] for c in crud_params]) + if insert_stmt._post_values_clause is not None: + post_values_clause = self.process( + insert_stmt._post_values_clause, **kw) + if post_values_clause: + text += " " + post_values_clause + if returning_clause and not self.returning_precedes_values: text += " " + returning_clause diff --git a/lib/sqlalchemy/sql/dml.py b/lib/sqlalchemy/sql/dml.py index 8f368dcdb..b54b4792d 100644 --- a/lib/sqlalchemy/sql/dml.py +++ b/lib/sqlalchemy/sql/dml.py @@ -194,6 +194,7 @@ class ValuesBase(UpdateBase): _has_multi_parameters = False _preserve_parameter_order = False select = None + _post_values_clause = None def __init__(self, table, values, prefixes): self.table = _interpret_as_from(table) -- cgit v1.2.1