0001-sql-use-insert-on-conflict-to-store-transient-data-6.patch
wcs/sql.py | ||
---|---|---|
3362 | 3362 | |
3363 | 3363 |
conn, cur = get_connection_and_cursor() |
3364 | 3364 |
column_names = sql_dict.keys() |
3365 |
sql_statement = '''UPDATE %s SET %s WHERE id = %%(id)s RETURNING id''' % ( |
|
3365 |
sql_statement = '''INSERT INTO %s (%s) VALUES (%s) |
|
3366 |
ON CONFLICT(id) DO UPDATE SET %s''' % ( |
|
3366 | 3367 |
self._table_name, |
3368 |
', '.join(column_names), |
|
3369 |
', '.join(['%%(%s)s' % x for x in column_names]), |
|
3367 | 3370 |
', '.join(['%s = %%(%s)s' % (x, x) for x in column_names]), |
3368 | 3371 |
) |
3369 | 3372 |
cur.execute(sql_statement, sql_dict) |
3370 |
if cur.fetchone() is None: |
|
3371 |
sql_statement = '''INSERT INTO %s (%s) VALUES (%s)''' % ( |
|
3372 |
self._table_name, |
|
3373 |
', '.join(column_names), |
|
3374 |
', '.join(['%%(%s)s' % x for x in column_names]), |
|
3375 |
) |
|
3376 |
cur.execute(sql_statement, sql_dict) |
|
3377 | 3373 | |
3378 | 3374 |
conn.commit() |
3379 | 3375 |
cur.close() |
3380 |
- |