improve initial loading performance by reducing amoung of sql queries

This commit is contained in:
Sorunome 2020-05-09 13:13:50 +02:00
parent b8c16b43d7
commit aa96686be0
No known key found for this signature in database
GPG key ID: B19471D07FC9BE9C

View file

@ -465,13 +465,15 @@ class ExtendedStore extends Store implements ExtendedStoreAPI {
(onlyLeft ? "=" : "!=") + (onlyLeft ? "=" : "!=") +
"'leave' " + "'leave' " +
" GROUP BY room_id "); " GROUP BY room_id ");
List<Map<String, dynamic>> resStates = await _db.rawQuery("SELECT * FROM RoomStates WHERE type IS NOT NULL");
List<Map<String, dynamic>> resAccountData = await _db.rawQuery("SELECT * FROM RoomAccountData");
List<Room> roomList = []; List<Room> roomList = [];
for (num i = 0; i < res.length; i++) { for (num i = 0; i < res.length; i++) {
Room room = await Room.getRoomFromTableRow( Room room = await Room.getRoomFromTableRow(
res[i], res[i],
client, client,
states: getStatesFromRoomId(res[i]["room_id"]), states: Future.value(resStates.where((r) => r["room_id"] == res[i]["room_id"]).toList()),
roomAccountData: getAccountDataFromRoomId(res[i]["room_id"]), roomAccountData: Future.value(resAccountData.where((r) => r["room_id"] == res[i]["room_id"]).toList()),
); );
roomList.add(room); roomList.add(room);
} }