Fix a weird edge case with persisted empty event ids
No idea, how that happened and where it came from
This commit is contained in:
parent
795b8fb7dd
commit
c8a547630b
@ -2867,15 +2867,18 @@ Cache::clearTimeline(const std::string &room_id)
|
|||||||
if (passed_pagination_token) {
|
if (passed_pagination_token) {
|
||||||
if (obj.count("event_id") != 0) {
|
if (obj.count("event_id") != 0) {
|
||||||
std::string event_id = obj["event_id"].get<std::string>();
|
std::string event_id = obj["event_id"].get<std::string>();
|
||||||
evToOrderDb.del(txn, event_id);
|
|
||||||
eventsDb.del(txn, event_id);
|
|
||||||
relationsDb.del(txn, event_id);
|
|
||||||
|
|
||||||
std::string_view order{};
|
if (!event_id.empty()) {
|
||||||
bool exists = msg2orderDb.get(txn, event_id, order);
|
evToOrderDb.del(txn, event_id);
|
||||||
if (exists) {
|
eventsDb.del(txn, event_id);
|
||||||
order2msgDb.del(txn, order);
|
relationsDb.del(txn, event_id);
|
||||||
msg2orderDb.del(txn, event_id);
|
|
||||||
|
std::string_view order{};
|
||||||
|
bool exists = msg2orderDb.get(txn, event_id, order);
|
||||||
|
if (exists) {
|
||||||
|
order2msgDb.del(txn, order);
|
||||||
|
msg2orderDb.del(txn, event_id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lmdb::cursor_del(cursor);
|
lmdb::cursor_del(cursor);
|
||||||
|
Loading…
Reference in New Issue
Block a user