mirror of
https://github.com/element-hq/synapse
synced 2024-08-20 16:40:20 +00:00
Py3 storage/_base.py
Signed-off-by: Adrian Tschira <nota@notafile.com>
This commit is contained in:
parent
ecc4b88bd1
commit
095292304f
1 changed files with 22 additions and 17 deletions
|
@ -27,6 +27,8 @@ import sys
|
||||||
import time
|
import time
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
|
from six import itervalues, iterkeys, iteritems
|
||||||
|
from six.moves import intern, range
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -137,7 +139,7 @@ class PerformanceCounters(object):
|
||||||
|
|
||||||
def interval(self, interval_duration, limit=3):
|
def interval(self, interval_duration, limit=3):
|
||||||
counters = []
|
counters = []
|
||||||
for name, (count, cum_time) in self.current_counters.iteritems():
|
for name, (count, cum_time) in iteritems(self.current_counters):
|
||||||
prev_count, prev_time = self.previous_counters.get(name, (0, 0))
|
prev_count, prev_time = self.previous_counters.get(name, (0, 0))
|
||||||
counters.append((
|
counters.append((
|
||||||
(cum_time - prev_time) / interval_duration,
|
(cum_time - prev_time) / interval_duration,
|
||||||
|
@ -543,7 +545,7 @@ class SQLBaseStore(object):
|
||||||
", ".join("%s = ?" % (k,) for k in values),
|
", ".join("%s = ?" % (k,) for k in values),
|
||||||
" AND ".join("%s = ?" % (k,) for k in keyvalues)
|
" AND ".join("%s = ?" % (k,) for k in keyvalues)
|
||||||
)
|
)
|
||||||
sqlargs = values.values() + keyvalues.values()
|
sqlargs = list(values.values()) + list(keyvalues.values())
|
||||||
|
|
||||||
txn.execute(sql, sqlargs)
|
txn.execute(sql, sqlargs)
|
||||||
if txn.rowcount > 0:
|
if txn.rowcount > 0:
|
||||||
|
@ -561,7 +563,7 @@ class SQLBaseStore(object):
|
||||||
", ".join(k for k in allvalues),
|
", ".join(k for k in allvalues),
|
||||||
", ".join("?" for _ in allvalues)
|
", ".join("?" for _ in allvalues)
|
||||||
)
|
)
|
||||||
txn.execute(sql, allvalues.values())
|
txn.execute(sql, list(allvalues.values()))
|
||||||
# successfully inserted
|
# successfully inserted
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -629,8 +631,8 @@ class SQLBaseStore(object):
|
||||||
}
|
}
|
||||||
|
|
||||||
if keyvalues:
|
if keyvalues:
|
||||||
sql += " WHERE %s" % " AND ".join("%s = ?" % k for k in keyvalues.iterkeys())
|
sql += " WHERE %s" % " AND ".join("%s = ?" % k for k in iterkeys(keyvalues))
|
||||||
txn.execute(sql, keyvalues.values())
|
txn.execute(sql, list(keyvalues.values()))
|
||||||
else:
|
else:
|
||||||
txn.execute(sql)
|
txn.execute(sql)
|
||||||
|
|
||||||
|
@ -694,7 +696,7 @@ class SQLBaseStore(object):
|
||||||
table,
|
table,
|
||||||
" AND ".join("%s = ?" % (k, ) for k in keyvalues)
|
" AND ".join("%s = ?" % (k, ) for k in keyvalues)
|
||||||
)
|
)
|
||||||
txn.execute(sql, keyvalues.values())
|
txn.execute(sql, list(keyvalues.values()))
|
||||||
else:
|
else:
|
||||||
sql = "SELECT %s FROM %s" % (
|
sql = "SELECT %s FROM %s" % (
|
||||||
", ".join(retcols),
|
", ".join(retcols),
|
||||||
|
@ -725,9 +727,12 @@ class SQLBaseStore(object):
|
||||||
if not iterable:
|
if not iterable:
|
||||||
defer.returnValue(results)
|
defer.returnValue(results)
|
||||||
|
|
||||||
|
# iterables can not be sliced, so convert it to a list first
|
||||||
|
it_list = list(iterable)
|
||||||
|
|
||||||
chunks = [
|
chunks = [
|
||||||
iterable[i:i + batch_size]
|
it_list[i:i + batch_size]
|
||||||
for i in xrange(0, len(iterable), batch_size)
|
for i in range(0, len(it_list), batch_size)
|
||||||
]
|
]
|
||||||
for chunk in chunks:
|
for chunk in chunks:
|
||||||
rows = yield self.runInteraction(
|
rows = yield self.runInteraction(
|
||||||
|
@ -767,7 +772,7 @@ class SQLBaseStore(object):
|
||||||
)
|
)
|
||||||
values.extend(iterable)
|
values.extend(iterable)
|
||||||
|
|
||||||
for key, value in keyvalues.iteritems():
|
for key, value in iteritems(keyvalues):
|
||||||
clauses.append("%s = ?" % (key,))
|
clauses.append("%s = ?" % (key,))
|
||||||
values.append(value)
|
values.append(value)
|
||||||
|
|
||||||
|
@ -790,7 +795,7 @@ class SQLBaseStore(object):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _simple_update_txn(txn, table, keyvalues, updatevalues):
|
def _simple_update_txn(txn, table, keyvalues, updatevalues):
|
||||||
if keyvalues:
|
if keyvalues:
|
||||||
where = "WHERE %s" % " AND ".join("%s = ?" % k for k in keyvalues.iterkeys())
|
where = "WHERE %s" % " AND ".join("%s = ?" % k for k in iterkeys(keyvalues))
|
||||||
else:
|
else:
|
||||||
where = ""
|
where = ""
|
||||||
|
|
||||||
|
@ -802,7 +807,7 @@ class SQLBaseStore(object):
|
||||||
|
|
||||||
txn.execute(
|
txn.execute(
|
||||||
update_sql,
|
update_sql,
|
||||||
updatevalues.values() + keyvalues.values()
|
list(updatevalues.values()) + list(keyvalues.values())
|
||||||
)
|
)
|
||||||
|
|
||||||
return txn.rowcount
|
return txn.rowcount
|
||||||
|
@ -850,7 +855,7 @@ class SQLBaseStore(object):
|
||||||
" AND ".join("%s = ?" % (k,) for k in keyvalues)
|
" AND ".join("%s = ?" % (k,) for k in keyvalues)
|
||||||
)
|
)
|
||||||
|
|
||||||
txn.execute(select_sql, keyvalues.values())
|
txn.execute(select_sql, list(keyvalues.values()))
|
||||||
|
|
||||||
row = txn.fetchone()
|
row = txn.fetchone()
|
||||||
if not row:
|
if not row:
|
||||||
|
@ -888,7 +893,7 @@ class SQLBaseStore(object):
|
||||||
" AND ".join("%s = ?" % (k, ) for k in keyvalues)
|
" AND ".join("%s = ?" % (k, ) for k in keyvalues)
|
||||||
)
|
)
|
||||||
|
|
||||||
txn.execute(sql, keyvalues.values())
|
txn.execute(sql, list(keyvalues.values()))
|
||||||
if txn.rowcount == 0:
|
if txn.rowcount == 0:
|
||||||
raise StoreError(404, "No row found")
|
raise StoreError(404, "No row found")
|
||||||
if txn.rowcount > 1:
|
if txn.rowcount > 1:
|
||||||
|
@ -906,7 +911,7 @@ class SQLBaseStore(object):
|
||||||
" AND ".join("%s = ?" % (k, ) for k in keyvalues)
|
" AND ".join("%s = ?" % (k, ) for k in keyvalues)
|
||||||
)
|
)
|
||||||
|
|
||||||
return txn.execute(sql, keyvalues.values())
|
return txn.execute(sql, list(keyvalues.values()))
|
||||||
|
|
||||||
def _simple_delete_many(self, table, column, iterable, keyvalues, desc):
|
def _simple_delete_many(self, table, column, iterable, keyvalues, desc):
|
||||||
return self.runInteraction(
|
return self.runInteraction(
|
||||||
|
@ -938,7 +943,7 @@ class SQLBaseStore(object):
|
||||||
)
|
)
|
||||||
values.extend(iterable)
|
values.extend(iterable)
|
||||||
|
|
||||||
for key, value in keyvalues.iteritems():
|
for key, value in iteritems(keyvalues):
|
||||||
clauses.append("%s = ?" % (key,))
|
clauses.append("%s = ?" % (key,))
|
||||||
values.append(value)
|
values.append(value)
|
||||||
|
|
||||||
|
@ -978,7 +983,7 @@ class SQLBaseStore(object):
|
||||||
txn.close()
|
txn.close()
|
||||||
|
|
||||||
if cache:
|
if cache:
|
||||||
min_val = min(cache.itervalues())
|
min_val = min(itervalues(cache))
|
||||||
else:
|
else:
|
||||||
min_val = max_value
|
min_val = max_value
|
||||||
|
|
||||||
|
@ -1093,7 +1098,7 @@ class SQLBaseStore(object):
|
||||||
" AND ".join("%s = ?" % (k,) for k in keyvalues),
|
" AND ".join("%s = ?" % (k,) for k in keyvalues),
|
||||||
" ? ASC LIMIT ? OFFSET ?"
|
" ? ASC LIMIT ? OFFSET ?"
|
||||||
)
|
)
|
||||||
txn.execute(sql, keyvalues.values() + pagevalues)
|
txn.execute(sql, list(keyvalues.values()) + list(pagevalues))
|
||||||
else:
|
else:
|
||||||
sql = "SELECT %s FROM %s ORDER BY %s" % (
|
sql = "SELECT %s FROM %s ORDER BY %s" % (
|
||||||
", ".join(retcols),
|
", ".join(retcols),
|
||||||
|
|
Loading…
Reference in a new issue