From bb6627cf5478b9b4064575e1be9e61c235e995b0 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Thu, 14 May 2026 22:21:09 +0800 Subject: [PATCH] fix(clickhouse): make table data fully read-only Add readonly flag to TableDataCapability and check it in isTableDataEditable and canEditExistingTableRows to prevent cell editing for databases like ClickHouse that don't support row-level UPDATE/DELETE. --- src/lib/databaseTableDataCapabilities.ts | 2 ++ src/lib/tableEditing.ts | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/databaseTableDataCapabilities.ts b/src/lib/databaseTableDataCapabilities.ts index 573e1d4020..7dfa4c169d 100644 --- a/src/lib/databaseTableDataCapabilities.ts +++ b/src/lib/databaseTableDataCapabilities.ts @@ -9,6 +9,7 @@ export interface TableDataCapability { deleteRequiresPrimaryKey: boolean; requiresTransactionalTableForExistingRows: boolean; transaction: boolean; + readonly?: boolean; } export interface DatabaseCapability { @@ -73,6 +74,7 @@ const DATABASE_CAPABILITY_OVERRIDES: Partial 0; } @@ -27,6 +29,7 @@ export function canEditExistingTableRows( primaryKeys?: string[], ): boolean { const tableData = getDatabaseCapability(databaseType).tableData; + if (tableData.readonly) return false; if (tableData.requiresTransactionalTableForExistingRows && hiveTableTransactional !== true) return false; if (tableData.updateRequiresPrimaryKey && primaryKeys && primaryKeys.length === 0) return false; return true;