Skip to content

Commit 31634cf

Browse files
Merge pull request #1519 from bharath2020/fix/load-records-performance-issue
Improve loadRecords performance in SQLiteNormalizedCache
2 parents 3f0a7ba + 76d3431 commit 31634cf

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

Sources/ApolloSQLite/SQLiteNormalizedCache.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,12 @@ extension SQLiteNormalizedCache: NormalizedCache {
140140
let result: Swift.Result<[Record?], Error>
141141
do {
142142
let records = try self.selectRecords(forKeys: keys)
143+
let recordsIndexMap = records.indices.reduce(into: [:]) { resultMap, index in
144+
resultMap[records[index].key] = index
145+
}
146+
143147
let recordsOrNil: [Record?] = keys.map { key in
144-
if let recordIndex = records.firstIndex(where: { $0.key == key }) {
145-
return records[recordIndex]
146-
}
147-
return nil
148+
recordsIndexMap[key].flatMap { records[$0] }
148149
}
149150

150151
result = .success(recordsOrNil)

0 commit comments

Comments
 (0)