mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-07-23 10:20:36 -04:00
Replace uses of simple_insert_many with simple_insert_many_values. (#11742)
This should be (slightly) more efficient and it is simpler to have a single method for inserting multiple values.
This commit is contained in:
parent
d70169bf9b
commit
3e0536cd2a
19 changed files with 263 additions and 298 deletions
|
@ -442,12 +442,9 @@ class PersistEventsStore:
|
|||
self.db_pool.simple_insert_many_txn(
|
||||
txn,
|
||||
table="event_auth",
|
||||
keys=("event_id", "room_id", "auth_id"),
|
||||
values=[
|
||||
{
|
||||
"event_id": event.event_id,
|
||||
"room_id": event.room_id,
|
||||
"auth_id": auth_id,
|
||||
}
|
||||
(event.event_id, event.room_id, auth_id)
|
||||
for event in events
|
||||
for auth_id in event.auth_event_ids()
|
||||
if event.is_state()
|
||||
|
@ -675,8 +672,9 @@ class PersistEventsStore:
|
|||
db_pool.simple_insert_many_txn(
|
||||
txn,
|
||||
table="event_auth_chains",
|
||||
keys=("event_id", "chain_id", "sequence_number"),
|
||||
values=[
|
||||
{"event_id": event_id, "chain_id": c_id, "sequence_number": seq}
|
||||
(event_id, c_id, seq)
|
||||
for event_id, (c_id, seq) in new_chain_tuples.items()
|
||||
],
|
||||
)
|
||||
|
@ -782,13 +780,14 @@ class PersistEventsStore:
|
|||
db_pool.simple_insert_many_txn(
|
||||
txn,
|
||||
table="event_auth_chain_links",
|
||||
keys=(
|
||||
"origin_chain_id",
|
||||
"origin_sequence_number",
|
||||
"target_chain_id",
|
||||
"target_sequence_number",
|
||||
),
|
||||
values=[
|
||||
{
|
||||
"origin_chain_id": source_id,
|
||||
"origin_sequence_number": source_seq,
|
||||
"target_chain_id": target_id,
|
||||
"target_sequence_number": target_seq,
|
||||
}
|
||||
(source_id, source_seq, target_id, target_seq)
|
||||
for (
|
||||
source_id,
|
||||
source_seq,
|
||||
|
@ -943,20 +942,28 @@ class PersistEventsStore:
|
|||
txn_id = getattr(event.internal_metadata, "txn_id", None)
|
||||
if token_id and txn_id:
|
||||
to_insert.append(
|
||||
{
|
||||
"event_id": event.event_id,
|
||||
"room_id": event.room_id,
|
||||
"user_id": event.sender,
|
||||
"token_id": token_id,
|
||||
"txn_id": txn_id,
|
||||
"inserted_ts": self._clock.time_msec(),
|
||||
}
|
||||
(
|
||||
event.event_id,
|
||||
event.room_id,
|
||||
event.sender,
|
||||
token_id,
|
||||
txn_id,
|
||||
self._clock.time_msec(),
|
||||
)
|
||||
)
|
||||
|
||||
if to_insert:
|
||||
self.db_pool.simple_insert_many_txn(
|
||||
txn,
|
||||
table="event_txn_id",
|
||||
keys=(
|
||||
"event_id",
|
||||
"room_id",
|
||||
"user_id",
|
||||
"token_id",
|
||||
"txn_id",
|
||||
"inserted_ts",
|
||||
),
|
||||
values=to_insert,
|
||||
)
|
||||
|
||||
|
@ -1161,8 +1168,9 @@ class PersistEventsStore:
|
|||
self.db_pool.simple_insert_many_txn(
|
||||
txn,
|
||||
table="event_forward_extremities",
|
||||
keys=("event_id", "room_id"),
|
||||
values=[
|
||||
{"event_id": ev_id, "room_id": room_id}
|
||||
(ev_id, room_id)
|
||||
for room_id, new_extrem in new_forward_extremities.items()
|
||||
for ev_id in new_extrem
|
||||
],
|
||||
|
@ -1174,12 +1182,9 @@ class PersistEventsStore:
|
|||
self.db_pool.simple_insert_many_txn(
|
||||
txn,
|
||||
table="stream_ordering_to_exterm",
|
||||
keys=("room_id", "event_id", "stream_ordering"),
|
||||
values=[
|
||||
{
|
||||
"room_id": room_id,
|
||||
"event_id": event_id,
|
||||
"stream_ordering": max_stream_order,
|
||||
}
|
||||
(room_id, event_id, max_stream_order)
|
||||
for room_id, new_extrem in new_forward_extremities.items()
|
||||
for event_id in new_extrem
|
||||
],
|
||||
|
@ -1342,7 +1347,7 @@ class PersistEventsStore:
|
|||
d.pop("redacted_because", None)
|
||||
return d
|
||||
|
||||
self.db_pool.simple_insert_many_values_txn(
|
||||
self.db_pool.simple_insert_many_txn(
|
||||
txn,
|
||||
table="event_json",
|
||||
keys=("event_id", "room_id", "internal_metadata", "json", "format_version"),
|
||||
|
@ -1358,7 +1363,7 @@ class PersistEventsStore:
|
|||
),
|
||||
)
|
||||
|
||||
self.db_pool.simple_insert_many_values_txn(
|
||||
self.db_pool.simple_insert_many_txn(
|
||||
txn,
|
||||
table="events",
|
||||
keys=(
|
||||
|
@ -1412,7 +1417,7 @@ class PersistEventsStore:
|
|||
)
|
||||
txn.execute(sql + clause, [False] + args)
|
||||
|
||||
self.db_pool.simple_insert_many_values_txn(
|
||||
self.db_pool.simple_insert_many_txn(
|
||||
txn,
|
||||
table="state_events",
|
||||
keys=("event_id", "room_id", "type", "state_key"),
|
||||
|
@ -1622,14 +1627,9 @@ class PersistEventsStore:
|
|||
return self.db_pool.simple_insert_many_txn(
|
||||
txn=txn,
|
||||
table="event_labels",
|
||||
keys=("event_id", "label", "room_id", "topological_ordering"),
|
||||
values=[
|
||||
{
|
||||
"event_id": event_id,
|
||||
"label": label,
|
||||
"room_id": room_id,
|
||||
"topological_ordering": topological_ordering,
|
||||
}
|
||||
for label in labels
|
||||
(event_id, label, room_id, topological_ordering) for label in labels
|
||||
],
|
||||
)
|
||||
|
||||
|
@ -1657,16 +1657,13 @@ class PersistEventsStore:
|
|||
vals = []
|
||||
for event in events:
|
||||
ref_alg, ref_hash_bytes = compute_event_reference_hash(event)
|
||||
vals.append(
|
||||
{
|
||||
"event_id": event.event_id,
|
||||
"algorithm": ref_alg,
|
||||
"hash": memoryview(ref_hash_bytes),
|
||||
}
|
||||
)
|
||||
vals.append((event.event_id, ref_alg, memoryview(ref_hash_bytes)))
|
||||
|
||||
self.db_pool.simple_insert_many_txn(
|
||||
txn, table="event_reference_hashes", values=vals
|
||||
txn,
|
||||
table="event_reference_hashes",
|
||||
keys=("event_id", "algorithm", "hash"),
|
||||
values=vals,
|
||||
)
|
||||
|
||||
def _store_room_members_txn(
|
||||
|
@ -1689,18 +1686,25 @@ class PersistEventsStore:
|
|||
self.db_pool.simple_insert_many_txn(
|
||||
txn,
|
||||
table="room_memberships",
|
||||
keys=(
|
||||
"event_id",
|
||||
"user_id",
|
||||
"sender",
|
||||
"room_id",
|
||||
"membership",
|
||||
"display_name",
|
||||
"avatar_url",
|
||||
),
|
||||
values=[
|
||||
{
|
||||
"event_id": event.event_id,
|
||||
"user_id": event.state_key,
|
||||
"sender": event.user_id,
|
||||
"room_id": event.room_id,
|
||||
"membership": event.membership,
|
||||
"display_name": non_null_str_or_none(
|
||||
event.content.get("displayname")
|
||||
),
|
||||
"avatar_url": non_null_str_or_none(event.content.get("avatar_url")),
|
||||
}
|
||||
(
|
||||
event.event_id,
|
||||
event.state_key,
|
||||
event.user_id,
|
||||
event.room_id,
|
||||
event.membership,
|
||||
non_null_str_or_none(event.content.get("displayname")),
|
||||
non_null_str_or_none(event.content.get("avatar_url")),
|
||||
)
|
||||
for event in events
|
||||
],
|
||||
)
|
||||
|
@ -2163,13 +2167,9 @@ class PersistEventsStore:
|
|||
self.db_pool.simple_insert_many_txn(
|
||||
txn,
|
||||
table="event_edges",
|
||||
keys=("event_id", "prev_event_id", "room_id", "is_state"),
|
||||
values=[
|
||||
{
|
||||
"event_id": ev.event_id,
|
||||
"prev_event_id": e_id,
|
||||
"room_id": ev.room_id,
|
||||
"is_state": False,
|
||||
}
|
||||
(ev.event_id, e_id, ev.room_id, False)
|
||||
for ev in events
|
||||
for e_id in ev.prev_event_ids()
|
||||
],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue