diff --git a/synapse/storage/database.py b/synapse/storage/database.py
index 367709a1a7..72fef1533f 100644
--- a/synapse/storage/database.py
+++ b/synapse/storage/database.py
@@ -290,11 +290,15 @@ class LoggingTransaction:
if isinstance(self.database_engine, PostgresEngine):
from psycopg2.extras import execute_batch
- self._do_execute(lambda *x: execute_batch(self.txn, *x), sql, args)
+ self._do_execute(
+ lambda the_sql: execute_batch(self.txn, the_sql, args), sql
+ )
else:
self.executemany(sql, args)
- def execute_values(self, sql: str, *args: Any, fetch: bool = True) -> List[Tuple]:
+ def execute_values(
+ self, sql: str, values: Iterable[Iterable[Any]], fetch: bool = True
+ ) -> List[Tuple]:
"""Corresponds to psycopg2.extras.execute_values. Only available when
using postgres.
@@ -305,15 +309,8 @@ class LoggingTransaction:
from psycopg2.extras import execute_values
return self._do_execute(
- # Type ignore: mypy is unhappy because if `x` is a 5-tuple, then there will
- # be two values for `fetch`: one given positionally, and another given
- # as a keyword argument. We might be able to fix this by
- # - propagating the signature of psycopg2.extras.execute_values to this
- # function, or
- # - changing `*args: Any` to `values: T` for some appropriate T.
- lambda *x: execute_values(self.txn, *x, fetch=fetch), # type: ignore[misc]
+ lambda the_sql: execute_values(self.txn, the_sql, values, fetch=fetch),
sql,
- *args,
)
def execute(self, sql: str, *args: Any) -> None:
|