@@ -1167,11 +1167,15 @@ def _update_current_state_txn(
11671167 # been inserted into room_memberships.
11681168 txn .execute_batch (
11691169 """INSERT INTO current_state_events
1170- (room_id, type, state_key, event_id, membership)
1171- VALUES (?, ?, ?, ?, (SELECT membership FROM room_memberships WHERE event_id = ?))
1170+ (room_id, type, state_key, event_id, membership, event_stream_ordering)
1171+ VALUES (
1172+ ?, ?, ?, ?,
1173+ (SELECT membership FROM room_memberships WHERE event_id = ?),
1174+ (SELECT stream_ordering FROM events WHERE event_id = ?)
1175+ )
11721176 """ ,
11731177 [
1174- (room_id , key [0 ], key [1 ], ev_id , ev_id )
1178+ (room_id , key [0 ], key [1 ], ev_id , ev_id , ev_id )
11751179 for key , ev_id in to_insert .items ()
11761180 ],
11771181 )
@@ -1198,11 +1202,15 @@ def _update_current_state_txn(
11981202 if to_insert :
11991203 txn .execute_batch (
12001204 """INSERT INTO local_current_membership
1201- (room_id, user_id, event_id, membership)
1202- VALUES (?, ?, ?, (SELECT membership FROM room_memberships WHERE event_id = ?))
1205+ (room_id, user_id, event_id, membership, event_stream_ordering)
1206+ VALUES (
1207+ ?, ?, ?,
1208+ (SELECT membership FROM room_memberships WHERE event_id = ?),
1209+ (SELECT stream_ordering FROM events WHERE event_id = ?)
1210+ )
12031211 """ ,
12041212 [
1205- (room_id , key [1 ], ev_id , ev_id )
1213+ (room_id , key [1 ], ev_id , ev_id , ev_id )
12061214 for key , ev_id in to_insert .items ()
12071215 if key [0 ] == EventTypes .Member and self .is_mine_id (key [1 ])
12081216 ],
@@ -1808,6 +1816,7 @@ def _store_room_members_txn(
18081816 table = "room_memberships" ,
18091817 keys = (
18101818 "event_id" ,
1819+ "event_stream_ordering" ,
18111820 "user_id" ,
18121821 "sender" ,
18131822 "room_id" ,
@@ -1818,6 +1827,7 @@ def _store_room_members_txn(
18181827 values = [
18191828 (
18201829 event .event_id ,
1830+ event .internal_metadata .stream_ordering ,
18211831 event .state_key ,
18221832 event .user_id ,
18231833 event .room_id ,
@@ -1850,6 +1860,7 @@ def _store_room_members_txn(
18501860 keyvalues = {"room_id" : event .room_id , "user_id" : event .state_key },
18511861 values = {
18521862 "event_id" : event .event_id ,
1863+ "event_stream_ordering" : event .internal_metadata .stream_ordering ,
18531864 "membership" : event .membership ,
18541865 },
18551866 )
0 commit comments