Use simple_select_many_txn in event persistance code. (#16585)
Just to standardize on the normal helpers, it might also have a slight perf improvement on PostgreSQL which will now use `ANY (?)` instead of `IN (?, ?, ...)`.
This commit is contained in:
parent
c812f43bd7
commit
0afbef30cf
|
@ -0,0 +1 @@
|
||||||
|
Use standard SQL helpers in persistence code.
|
|
@ -1350,13 +1350,19 @@ class PersistEventsStore:
|
||||||
PartialStateConflictError: if attempting to persist a partial state event in
|
PartialStateConflictError: if attempting to persist a partial state event in
|
||||||
a room that has been un-partial stated.
|
a room that has been un-partial stated.
|
||||||
"""
|
"""
|
||||||
txn.execute(
|
rows = cast(
|
||||||
"SELECT event_id, outlier FROM events WHERE event_id in (%s)"
|
List[Tuple[str, bool]],
|
||||||
% (",".join(["?"] * len(events_and_contexts)),),
|
self.db_pool.simple_select_many_txn(
|
||||||
[event.event_id for event, _ in events_and_contexts],
|
txn,
|
||||||
|
"events",
|
||||||
|
"event_id",
|
||||||
|
[event.event_id for event, _ in events_and_contexts],
|
||||||
|
keyvalues={},
|
||||||
|
retcols=("event_id", "outlier"),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
have_persisted = dict(cast(Iterable[Tuple[str, bool]], txn))
|
have_persisted = dict(rows)
|
||||||
|
|
||||||
logger.debug(
|
logger.debug(
|
||||||
"_update_outliers_txn: events=%s have_persisted=%s",
|
"_update_outliers_txn: events=%s have_persisted=%s",
|
||||||
|
|
Loading…
Reference in New Issue