From 4e1a0390daee72e2c3cb393748bdddcafdddd55b Mon Sep 17 00:00:00 2001 From: Andrew Valleteau Date: Fri, 13 Jun 2025 06:46:05 +0200 Subject: [PATCH] fix(SQLEditor): disable transactional mode for manual queries (#36367) --- apps/studio/components/interfaces/SQLEditor/SQLEditor.tsx | 1 + apps/studio/data/sql/execute-sql-query.ts | 5 ++++- packages/api-types/types/platform.d.ts | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/studio/components/interfaces/SQLEditor/SQLEditor.tsx b/apps/studio/components/interfaces/SQLEditor/SQLEditor.tsx index 4d86bfb86e1..054174f05f3 100644 --- a/apps/studio/components/interfaces/SQLEditor/SQLEditor.tsx +++ b/apps/studio/components/interfaces/SQLEditor/SQLEditor.tsx @@ -316,6 +316,7 @@ export const SQLEditor = () => { sql: wrapWithRoleImpersonation(formattedSql, impersonatedRoleState), autoLimit: appendAutoLimit ? limit : undefined, isRoleImpersonationEnabled: isRoleImpersonationEnabled(impersonatedRoleState.role), + isStatementTimeoutDisabled: true, contextualInvalidation: true, handleError: (error) => { throw error diff --git a/apps/studio/data/sql/execute-sql-query.ts b/apps/studio/data/sql/execute-sql-query.ts index 8e2b1536721..a7fe145fc9e 100644 --- a/apps/studio/data/sql/execute-sql-query.ts +++ b/apps/studio/data/sql/execute-sql-query.ts @@ -17,6 +17,7 @@ export type ExecuteSqlVariables = { queryKey?: QueryKey handleError?: (error: ResponseError) => { result: any } isRoleImpersonationEnabled?: boolean + isStatementTimeoutDisabled?: boolean autoLimit?: number contextualInvalidation?: boolean } @@ -29,6 +30,7 @@ export async function executeSql( queryKey, handleError, isRoleImpersonationEnabled = false, + isStatementTimeoutDisabled = false, }: Pick< ExecuteSqlVariables, | 'projectRef' @@ -37,6 +39,7 @@ export async function executeSql( | 'queryKey' | 'handleError' | 'isRoleImpersonationEnabled' + | 'isStatementTimeoutDisabled' >, signal?: AbortSignal, headersInit?: HeadersInit, @@ -80,7 +83,7 @@ export async function executeSql( .join('-') ?? '', }, }, - body: { query: sql }, + body: { query: sql, disable_statement_timeout: isStatementTimeoutDisabled }, headers, }) diff --git a/packages/api-types/types/platform.d.ts b/packages/api-types/types/platform.d.ts index ff4237991c3..db25f31163c 100644 --- a/packages/api-types/types/platform.d.ts +++ b/packages/api-types/types/platform.d.ts @@ -7275,6 +7275,7 @@ export interface components { } RunQueryBody: { query: string + disable_statement_timeout?: boolean } SearchProfileBody: { keywords: string