From be247395dbc592fd9d51916d61c0401e1eee1707 Mon Sep 17 00:00:00 2001 From: Mert <101130780+mertalev@users.noreply.github.com> Date: Wed, 28 May 2025 17:23:49 -0400 Subject: [PATCH] fix(server): deadlock when fetching vector count (#18728) move row count query --- server/src/repositories/database.repository.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/repositories/database.repository.ts b/server/src/repositories/database.repository.ts index 1e8e147c43..94d9029f60 100644 --- a/server/src/repositories/database.repository.ts +++ b/server/src/repositories/database.repository.ts @@ -246,6 +246,7 @@ export class DatabaseRepository { return; } const dimSize = await this.getDimensionSize(table); + lists ||= this.targetListCount(await this.getRowCount(table)); await this.db.schema.dropIndex(indexName).ifExists().execute(); if (table === 'smart_search') { await this.db.schema.alterTable(table).dropConstraint('dim_size_constraint').ifExists().execute(); @@ -262,7 +263,6 @@ export class DatabaseRepository { ALTER TABLE ${sql.raw(table)} ALTER COLUMN embedding SET DATA TYPE ${sql.raw(schema)}vector(${sql.raw(String(dimSize))})`.execute(tx); - lists ||= this.targetListCount(await this.getRowCount(table)); await sql.raw(vectorIndexQuery({ vectorExtension, table, indexName, lists })).execute(tx); }); try {