Err, delete the right stuff

This commit is contained in:
Erik Johnston 2015-05-12 15:02:53 +01:00
parent 30c72d377e
commit 8b28209c60

View file

@ -336,20 +336,21 @@ class EventFederationStore(SQLBaseStore):
" SELECT 1 FROM event_backward_extremities" " SELECT 1 FROM event_backward_extremities"
" WHERE event_id = ? AND room_id = ?" " WHERE event_id = ? AND room_id = ?"
" )" " )"
" AND NOT EXISTS ("
" SELECT 1 FROM events WHERE event_id = ? AND room_id = ?"
" )"
) )
txn.executemany(query, [ txn.executemany(query, [
(e_id, room_id, e_id, room_id, ) (e_id, room_id, e_id, room_id, e_id, room_id, )
for e_id, _ in prev_events for e_id, _ in prev_events
]) ])
# Also delete from the backwards extremities table all ones that
# reference events that we have already seen
query = ( query = (
"DELETE FROM event_backward_extremities" "DELETE FROM event_backward_extremities"
" WHERE event_id = ? AND room_id = ?" " WHERE event_id = ? AND room_id = ?"
) )
txn.executemany(query, [(e_id, room_id) for e_id, _ in prev_events]) txn.execute(query, (event_id, room_id))
txn.call_after( txn.call_after(
self.get_latest_event_ids_in_room.invalidate, room_id self.get_latest_event_ids_in_room.invalidate, room_id