feat(data-grid): 无主键表支持全列匹配编辑并移除只读限制

- 新增 all-columns 全列匹配行定位策略,无主键/唯一索引时不再强制只读
- 元数据加载失败、索引查询失败等误报场景全部降级为全列匹配编辑
- 修复 resolveQueryLocatorPlan 同步解析异常导致 SQL 结果页签不出现的问题
- 行安全由后端影响行数校验兜底,非单行命中即回滚整个事务
- 同步更新六语言文案与相关测试用例
This commit is contained in:
Syngnat
2026-07-05 16:00:25 +08:00
parent 8280f342a8
commit 5beb4c3ce4
14 changed files with 275 additions and 288 deletions

View File

@@ -4604,6 +4604,7 @@
"data_sync.warning.tdengine_target_type_fallback": "Spalte {{column}} Typ {{type}} wurde zu {{targetType}} herabgestuft",
"data_sync.warning.tdengine_target_type_no_mapping_fallback": "Spalte {{column}} Typ {{type}} hat keine dedizierte TDengine-Zuordnung und wurde zu {{targetType}} herabgestuft",
"data_sync.warning.tdengine_target_user_defined_type_fallback": "Spalte {{column}} ist ein benutzerdefinierter Typ und wurde zu {{targetType}} herabgestuft",
"data_viewer.edit_hint.all_columns_locator": "Kein Primärschlüssel oder eindeutiger Index erkannt. Zeilen werden durch Abgleich aller Spalten lokalisiert. Bitte mit Vorsicht bearbeiten.",
"data_viewer.message.connection_not_found": "Verbindung nicht gefunden",
"data_viewer.message.duckdb_query_timeout": "Die DuckDB-Abfrage hat das Verbindungstimeout überschritten und wurde unterbrochen. Erhöhen Sie das Verbindungstimeout oder verkleinern Sie den Sortier-/Filterbereich und versuchen Sie es erneut.",
"data_viewer.message.fetch_data_failed_detail": "Fehler beim Abrufen der Daten: {{detail}}",

View File

@@ -4604,6 +4604,7 @@
"data_sync.warning.tdengine_target_type_fallback": "Column {{column}} type {{type}} was degraded to {{targetType}}",
"data_sync.warning.tdengine_target_type_no_mapping_fallback": "Column {{column}} type {{type}} has no dedicated TDengine mapping and was degraded to {{targetType}}",
"data_sync.warning.tdengine_target_user_defined_type_fallback": "Column {{column}} is a user-defined type and was degraded to {{targetType}}",
"data_viewer.edit_hint.all_columns_locator": "No primary key or unique index was detected, so rows will be located by matching all columns. Edit with care.",
"data_viewer.message.connection_not_found": "Connection not found",
"data_viewer.message.duckdb_query_timeout": "DuckDB query exceeded the connection timeout and was interrupted. Increase the connection timeout, or reduce the sort/filter scope and retry.",
"data_viewer.message.fetch_data_failed_detail": "Error fetching data: {{detail}}",

View File

@@ -4604,6 +4604,7 @@
"data_sync.warning.tdengine_target_type_fallback": "列 {{column}} の型 {{type}} は {{targetType}} に降格されました",
"data_sync.warning.tdengine_target_type_no_mapping_fallback": "列 {{column}} の型 {{type}} には専用の TDengine マッピングがないため、{{targetType}} に降格されました",
"data_sync.warning.tdengine_target_user_defined_type_fallback": "列 {{column}} はユーザー定義型のため、{{targetType}} に降格されました",
"data_viewer.edit_hint.all_columns_locator": "主キーまたは一意インデックスが検出されなかったため、全列一致で行を特定します。編集には注意してください。",
"data_viewer.message.connection_not_found": "接続が見つかりません",
"data_viewer.message.duckdb_query_timeout": "DuckDB クエリが接続タイムアウトを超えたため中断されました。接続タイムアウトを延長するか、並べ替え/フィルター範囲を絞って再試行してください。",
"data_viewer.message.fetch_data_failed_detail": "データ取得に失敗しました: {{detail}}",

View File

@@ -4604,6 +4604,7 @@
"data_sync.warning.tdengine_target_type_fallback": "Столбец {{column}} типа {{type}} деградирован до {{targetType}}",
"data_sync.warning.tdengine_target_type_no_mapping_fallback": "Для столбца {{column}} типа {{type}} нет отдельного сопоставления TDengine; он деградирован до {{targetType}}",
"data_sync.warning.tdengine_target_user_defined_type_fallback": "Столбец {{column}} является пользовательским типом и деградирован до {{targetType}}",
"data_viewer.edit_hint.all_columns_locator": "Первичный ключ или уникальный индекс не обнаружены, поэтому строки будут определяться по совпадению всех столбцов. Редактируйте с осторожностью.",
"data_viewer.message.connection_not_found": "Подключение не найдено",
"data_viewer.message.duckdb_query_timeout": "Запрос DuckDB превысил тайм-аут подключения и был прерван. Увеличьте тайм-аут подключения или сократите область сортировки/фильтрации и повторите попытку.",
"data_viewer.message.fetch_data_failed_detail": "Ошибка при получении данных: {{detail}}",

View File

@@ -4604,6 +4604,7 @@
"data_sync.warning.tdengine_target_type_fallback": "字段 {{column}} 类型 {{type}} 已降级为 {{targetType}}",
"data_sync.warning.tdengine_target_type_no_mapping_fallback": "字段 {{column}} 类型 {{type}} 没有专用 TDengine 映射,已降级为 {{targetType}}",
"data_sync.warning.tdengine_target_user_defined_type_fallback": "字段 {{column}} 为用户自定义类型,已降级为 {{targetType}}",
"data_viewer.edit_hint.all_columns_locator": "未检测到主键或唯一索引,将使用全列匹配定位行,请谨慎编辑。",
"data_viewer.message.connection_not_found": "未找到连接",
"data_viewer.message.duckdb_query_timeout": "DuckDB 查询超过连接超时时间,已中断。请调大连接超时时间,或减少排序/筛选范围后重试。",
"data_viewer.message.fetch_data_failed_detail": "获取数据失败:{{detail}}",

View File

@@ -4604,6 +4604,7 @@
"data_sync.warning.tdengine_target_type_fallback": "欄位 {{column}} 型別 {{type}} 已降級為 {{targetType}}",
"data_sync.warning.tdengine_target_type_no_mapping_fallback": "欄位 {{column}} 型別 {{type}} 沒有專用 TDengine 對應,已降級為 {{targetType}}",
"data_sync.warning.tdengine_target_user_defined_type_fallback": "欄位 {{column}} 為使用者自定義型別,已降級為 {{targetType}}",
"data_viewer.edit_hint.all_columns_locator": "未偵測到主鍵或唯一索引,將使用全欄位匹配定位資料列,請謹慎編輯。",
"data_viewer.message.connection_not_found": "找不到連線",
"data_viewer.message.duckdb_query_timeout": "DuckDB 查詢超過連線逾時時間,已中斷。請調高連線逾時時間,或縮小排序/篩選範圍後再試。",
"data_viewer.message.fetch_data_failed_detail": "取得資料失敗:{{detail}}",