Skip to content
Snippets Groups Projects
Commit cdc9e50a authored by Richard van der Hoff's avatar Richard van der Hoff
Browse files

Cleanup in _simple_upsert_txn

Bail out early to reduce indentation
parent f959c016
No related branches found
No related tags found
No related merge requests found
...@@ -493,7 +493,7 @@ class SQLBaseStore(object): ...@@ -493,7 +493,7 @@ class SQLBaseStore(object):
if lock: if lock:
self.database_engine.lock_table(txn, table) self.database_engine.lock_table(txn, table)
# Try to update # First try to update.
sql = "UPDATE %s SET %s WHERE %s" % ( sql = "UPDATE %s SET %s WHERE %s" % (
table, table,
", ".join("%s = ?" % (k,) for k in values), ", ".join("%s = ?" % (k,) for k in values),
...@@ -502,23 +502,24 @@ class SQLBaseStore(object): ...@@ -502,23 +502,24 @@ class SQLBaseStore(object):
sqlargs = values.values() + keyvalues.values() sqlargs = values.values() + keyvalues.values()
txn.execute(sql, sqlargs) txn.execute(sql, sqlargs)
if txn.rowcount == 0: if txn.rowcount > 0:
# We didn't update and rows so insert a new one # successfully updated at least one row.
allvalues = {} return False
allvalues.update(keyvalues)
allvalues.update(values)
allvalues.update(insertion_values)
sql = "INSERT INTO %s (%s) VALUES (%s)" % ( # We didn't update any rows so insert a new one
table, allvalues = {}
", ".join(k for k in allvalues), allvalues.update(keyvalues)
", ".join("?" for _ in allvalues) allvalues.update(values)
) allvalues.update(insertion_values)
txn.execute(sql, allvalues.values())
return True sql = "INSERT INTO %s (%s) VALUES (%s)" % (
else: table,
return False ", ".join(k for k in allvalues),
", ".join("?" for _ in allvalues)
)
txn.execute(sql, allvalues.values())
# successfully inserted
return True
def _simple_select_one(self, table, keyvalues, retcols, def _simple_select_one(self, table, keyvalues, retcols,
allow_none=False, desc="_simple_select_one"): allow_none=False, desc="_simple_select_one"):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment