getAllStories: Remove nested queries

This commit is contained in:
Scott Nonnenberg 2024-07-30 11:29:35 -07:00 committed by GitHub
parent a795602e19
commit 95209689a8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 328 additions and 34 deletions

View file

@ -0,0 +1,31 @@
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { Database } from '@signalapp/better-sqlite3';
import type { LoggerType } from '../../types/Logging';
export const version = 1130;
export function updateToSchemaVersion1130(
currentVersion: number,
db: Database,
logger: LoggerType
): void {
if (currentVersion >= 1130) {
return;
}
db.transaction(() => {
// This is to improve the performance of getAllStories
db.exec(`
CREATE INDEX messages_isStory
ON messages(received_at, sent_at)
WHERE isStory = 1;
`);
})();
db.pragma('user_version = 1130');
logger.info('updateToSchemaVersion1130: success!');
}

View file

@ -88,10 +88,11 @@ import { updateToSchemaVersion1080 } from './1080-nondisappearing-addressable';
import { updateToSchemaVersion1090 } from './1090-message-delete-indexes';
import { updateToSchemaVersion1100 } from './1100-optimize-mark-call-history-read-in-conversation';
import { updateToSchemaVersion1110 } from './1110-sticker-local-key';
import { updateToSchemaVersion1120 } from './1120-messages-foreign-keys-indexes';
import {
updateToSchemaVersion1120,
updateToSchemaVersion1130,
version as MAX_VERSION,
} from './1120-messages-foreign-keys-indexes';
} from './1130-isStory-index';
function updateToSchemaVersion1(
currentVersion: number,
@ -2044,9 +2045,11 @@ export const SCHEMA_VERSIONS = [
updateToSchemaVersion1070,
updateToSchemaVersion1080,
updateToSchemaVersion1090,
updateToSchemaVersion1100,
updateToSchemaVersion1110,
updateToSchemaVersion1120,
updateToSchemaVersion1130,
];
export class DBVersionFromFutureError extends Error {