From f8b936f2585a4aef9880dc404f990c76b5346576 Mon Sep 17 00:00:00 2001 From: ayumi-signal <143036029+ayumi-signal@users.noreply.github.com> Date: Mon, 13 Nov 2023 10:30:40 -0800 Subject: [PATCH] Optimize FTS5 --- ts/sql/migrations/970-fts5-optimize.ts | 30 ++++++++++++++++++++++++++ ts/sql/migrations/index.ts | 6 ++++-- 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 ts/sql/migrations/970-fts5-optimize.ts diff --git a/ts/sql/migrations/970-fts5-optimize.ts b/ts/sql/migrations/970-fts5-optimize.ts new file mode 100644 index 0000000000..199aa7c31e --- /dev/null +++ b/ts/sql/migrations/970-fts5-optimize.ts @@ -0,0 +1,30 @@ +// Copyright 2023 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 = 970; + +export function updateToSchemaVersion970( + currentVersion: number, + db: Database, + logger: LoggerType +): void { + if (currentVersion >= 970) { + return; + } + + const start = Date.now(); + db.transaction(() => { + db.exec(` + INSERT INTO messages_fts(messages_fts) VALUES ('optimize'); + `); + db.pragma('user_version = 970'); + })(); + + const duration = Date.now() - start; + logger.info( + `updateToSchemaVersion970: success! fts optimize took ${duration}ms` + ); +} diff --git a/ts/sql/migrations/index.ts b/ts/sql/migrations/index.ts index 2311a039cb..107d0f7556 100644 --- a/ts/sql/migrations/index.ts +++ b/ts/sql/migrations/index.ts @@ -71,10 +71,11 @@ import { updateToSchemaVersion920 } from './920-clean-more-keys'; import { updateToSchemaVersion930 } from './930-fts5-secure-delete'; import { updateToSchemaVersion940 } from './940-fts5-revert'; import { updateToSchemaVersion950 } from './950-fts5-secure-delete'; +import { updateToSchemaVersion960 } from './960-untag-pni'; import { version as MAX_VERSION, - updateToSchemaVersion960, -} from './960-untag-pni'; + updateToSchemaVersion970, +} from './970-fts5-optimize'; function updateToSchemaVersion1( currentVersion: number, @@ -2013,6 +2014,7 @@ export const SCHEMA_VERSIONS = [ updateToSchemaVersion940, updateToSchemaVersion950, updateToSchemaVersion960, + updateToSchemaVersion970, ]; export class DBVersionFromFutureError extends Error {