mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-05-08 08:58:38 +01:00
Improve performance of Delete All Data
This commit is contained in:
@@ -5515,6 +5515,9 @@ async function removeAll(): Promise<void> {
|
|||||||
|
|
||||||
db.transaction(() => {
|
db.transaction(() => {
|
||||||
db.exec(`
|
db.exec(`
|
||||||
|
--- Remove messages delete trigger for performance
|
||||||
|
DROP TRIGGER messages_on_delete;
|
||||||
|
|
||||||
DELETE FROM attachment_downloads;
|
DELETE FROM attachment_downloads;
|
||||||
DELETE FROM badgeImageFiles;
|
DELETE FROM badgeImageFiles;
|
||||||
DELETE FROM badges;
|
DELETE FROM badges;
|
||||||
@@ -5546,6 +5549,21 @@ async function removeAll(): Promise<void> {
|
|||||||
DELETE FROM uninstalled_sticker_packs;
|
DELETE FROM uninstalled_sticker_packs;
|
||||||
|
|
||||||
INSERT INTO messages_fts(messages_fts) VALUES('optimize');
|
INSERT INTO messages_fts(messages_fts) VALUES('optimize');
|
||||||
|
|
||||||
|
--- Re-create the messages delete trigger
|
||||||
|
--- See migration 45
|
||||||
|
CREATE TRIGGER messages_on_delete AFTER DELETE ON messages BEGIN
|
||||||
|
DELETE FROM messages_fts WHERE rowid = old.rowid;
|
||||||
|
DELETE FROM sendLogPayloads WHERE id IN (
|
||||||
|
SELECT payloadId FROM sendLogMessageIds
|
||||||
|
WHERE messageId = old.id
|
||||||
|
);
|
||||||
|
DELETE FROM reactions WHERE rowid IN (
|
||||||
|
SELECT rowid FROM reactions
|
||||||
|
WHERE messageId = old.id
|
||||||
|
);
|
||||||
|
DELETE FROM storyReads WHERE storyId = old.storyId;
|
||||||
|
END;
|
||||||
`);
|
`);
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,6 +75,8 @@ export default function updateToSchemaVersion45(
|
|||||||
|
|
||||||
--- Update delete trigger to remove storyReads
|
--- Update delete trigger to remove storyReads
|
||||||
|
|
||||||
|
--- Note: for future updates to this trigger, be sure to update Server.ts/removeAll()
|
||||||
|
--- (it deletes and re-adds this trigger for performance)
|
||||||
DROP TRIGGER messages_on_delete;
|
DROP TRIGGER messages_on_delete;
|
||||||
CREATE TRIGGER messages_on_delete AFTER DELETE ON messages BEGIN
|
CREATE TRIGGER messages_on_delete AFTER DELETE ON messages BEGIN
|
||||||
DELETE FROM messages_fts WHERE rowid = old.rowid;
|
DELETE FROM messages_fts WHERE rowid = old.rowid;
|
||||||
|
|||||||
Reference in New Issue
Block a user