From 3d114c28e23a61df65550f53e1266b763c7c26d0 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Thu, 13 Aug 2026 22:39:32 +0000 Subject: [PATCH] fix(sqlserver): split KILL statement execution targets Closes #5566 --- .../lib/__tests__/sql/sqlStatementRanges.spec.ts | 13 +++++++++++++ apps/desktop/src/lib/sql/sqlStatementRanges.ts | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/lib/__tests__/sql/sqlStatementRanges.spec.ts b/apps/desktop/src/lib/__tests__/sql/sqlStatementRanges.spec.ts index b236c2610e..1fd007bac4 100644 --- a/apps/desktop/src/lib/__tests__/sql/sqlStatementRanges.spec.ts +++ b/apps/desktop/src/lib/__tests__/sql/sqlStatementRanges.spec.ts @@ -1161,6 +1161,12 @@ describe("executableStatementRanges", () => { it("returns executable SQL Server batches without GO delimiter lines", () => { expect(rangeSqlTexts(executableStatementRanges("SELECT 1\nGO\nSELECT 2;", "sqlserver"))).toEqual(["SELECT 1", "SELECT 2"]); }); + + it("keeps SQL Server KILL commands independent without semicolons", () => { + const sql = "EXEC sp_who_lock\nDBCC INPUTBUFFER(580)\nKILL 580"; + + expect(rangeSqlTexts(executableStatementRanges(sql, "sqlserver"))).toEqual(["EXEC sp_who_lock", "DBCC INPUTBUFFER(580)", "KILL 580"]); + }); }); describe("currentExecutableStatementRange", () => { @@ -1442,6 +1448,13 @@ WHERE t2.product_name = '12345' const candidates = buildExecutionCandidates(sql, indexOf(sql, "2"), "sqlserver"); expect(candidateSummaries(candidates)).toEqual(["cursor:SELECT 2", "all:SELECT 1\nGO\nSELECT 2;"]); }); + + it("uses a trailing SQL Server KILL command as the current statement", () => { + const sql = "EXEC sp_who_lock\nDBCC INPUTBUFFER(580)\nKILL 580"; + const candidates = buildExecutionCandidates(sql, indexOf(sql, "KILL"), "sqlserver"); + + expect(candidateSummaries(candidates)).toEqual(["cursor:KILL 580", `all:${sql}`]); + }); }); describe("hasMultipleExecutionTargets", () => { diff --git a/apps/desktop/src/lib/sql/sqlStatementRanges.ts b/apps/desktop/src/lib/sql/sqlStatementRanges.ts index 03a0876b29..ede1d8435c 100644 --- a/apps/desktop/src/lib/sql/sqlStatementRanges.ts +++ b/apps/desktop/src/lib/sql/sqlStatementRanges.ts @@ -237,7 +237,7 @@ const DATABASE_SOFT_STATEMENT_KEYWORDS: Partial