mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-04-17 15:23:36 +01:00
Improve backup export speed
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
This commit is contained in:
@@ -153,6 +153,8 @@ import type {
|
||||
MessageType,
|
||||
PageMessagesCursorType,
|
||||
PageMessagesResultType,
|
||||
PageBackupMessagesCursorType,
|
||||
PageBackupMessagesResultType,
|
||||
PreKeyIdType,
|
||||
PollVoteReadResultType,
|
||||
ReactionResultType,
|
||||
@@ -573,6 +575,7 @@ export const DataReader: ServerReadableInterface = {
|
||||
finishGetKnownMessageAttachments,
|
||||
pageMessages,
|
||||
finishPageMessages,
|
||||
pageBackupMessages,
|
||||
getKnownDownloads,
|
||||
getKnownConversationAttachments,
|
||||
|
||||
@@ -8958,6 +8961,32 @@ function finishPageMessages(
|
||||
`);
|
||||
}
|
||||
|
||||
function pageBackupMessages(
|
||||
db: ReadableDB,
|
||||
cursor?: PageBackupMessagesCursorType
|
||||
): PageBackupMessagesResultType {
|
||||
const LIMIT = 10000;
|
||||
const [query, params] = sql`
|
||||
SELECT
|
||||
rowid,
|
||||
${MESSAGE_COLUMNS_FRAGMENT}
|
||||
FROM messages
|
||||
WHERE
|
||||
rowid >= ${cursor?.nextRowid ?? 0}
|
||||
LIMIT ${LIMIT}
|
||||
`;
|
||||
const rows: Array<MessageTypeUnhydrated & { rowid: number }> = db
|
||||
.prepare(query)
|
||||
.all(params);
|
||||
return {
|
||||
cursor: {
|
||||
nextRowid: rows.at(-1)?.rowid ?? 0,
|
||||
done: rows.length < LIMIT,
|
||||
} as PageBackupMessagesCursorType,
|
||||
messages: hydrateMessages(db, rows),
|
||||
};
|
||||
}
|
||||
|
||||
function getKnownDownloads(db: ReadableDB): Array<string> {
|
||||
const result = [];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user