From 315f2ebbd1d40e03497a74cad48c1cb0767eb53e Mon Sep 17 00:00:00 2001 From: Pete Walters Date: Tue, 22 Oct 2024 13:34:45 -0500 Subject: [PATCH] Cache SQL statements for reactions/attachment fetches --- .../Attachments/V2/AttachmentStore/AttachmentStoreImpl.swift | 4 ++-- SignalServiceKit/Messages/Reactions/ReactionFinder.swift | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/SignalServiceKit/Messages/Attachments/V2/AttachmentStore/AttachmentStoreImpl.swift b/SignalServiceKit/Messages/Attachments/V2/AttachmentStore/AttachmentStoreImpl.swift index 80bf0c19f5..5fb72efd73 100644 --- a/SignalServiceKit/Messages/Attachments/V2/AttachmentStore/AttachmentStoreImpl.swift +++ b/SignalServiceKit/Messages/Attachments/V2/AttachmentStore/AttachmentStoreImpl.swift @@ -76,8 +76,8 @@ public class AttachmentStoreImpl: AttachmentStore { } let sql = "SELECT * FROM \(recordType.databaseTableName) WHERE \(filterClauses.joined(separator: " OR "));" do { - var results = try RecordType - .fetchAll(tx.databaseConnection, sql: sql, arguments: arguments) + let statement = try tx.databaseConnection.cachedStatement(sql: sql) + var results = try RecordType.fetchAll(statement, arguments: arguments) // If we have one owner and are capable of sorting, sort in ascending order. if owners.count == 1, let orderInOwnerKey = RecordType.orderInOwnerKey { diff --git a/SignalServiceKit/Messages/Reactions/ReactionFinder.swift b/SignalServiceKit/Messages/Reactions/ReactionFinder.swift index 89ba8947c3..929b262dd9 100644 --- a/SignalServiceKit/Messages/Reactions/ReactionFinder.swift +++ b/SignalServiceKit/Messages/Reactions/ReactionFinder.swift @@ -71,7 +71,8 @@ public class ReactionFinder { var reactions = [OWSReaction]() do { - let cursor = try OWSReaction.fetchCursor(transaction.database, sql: sql, arguments: [uniqueMessageId]) + let statement = try transaction.database.cachedStatement(sql: sql) + let cursor = try OWSReaction.fetchCursor(statement, arguments: [uniqueMessageId]) while let reaction = try cursor.next() { reactions.append(reaction) }