From 0146e4a1dd1dde787267c156369cc33ea8e48442 Mon Sep 17 00:00:00 2001 From: "SPRINX0\\prochazka" Date: Wed, 11 Jun 2025 11:28:46 +0200 Subject: [PATCH] #1111 mssql - handle timestamp and computed columns in clonerows --- packages/datalib/src/GridDisplay.ts | 1 + packages/datalib/src/TableGridDisplay.ts | 1 + packages/types/dbinfo.d.ts | 1 + packages/web/src/datagrid/DataGridCore.svelte | 1 + plugins/dbgate-plugin-mssql/src/backend/MsSqlAnalyser.js | 1 + 5 files changed, 5 insertions(+) diff --git a/packages/datalib/src/GridDisplay.ts b/packages/datalib/src/GridDisplay.ts index 752628c8d..3a2d24d4a 100644 --- a/packages/datalib/src/GridDisplay.ts +++ b/packages/datalib/src/GridDisplay.ts @@ -28,6 +28,7 @@ export interface DisplayColumn { notNull?: boolean; autoIncrement?: boolean; isPrimaryKey?: boolean; + hasAutoValue?: boolean; // NoSQL specific isPartitionKey?: boolean; diff --git a/packages/datalib/src/TableGridDisplay.ts b/packages/datalib/src/TableGridDisplay.ts index bfdd27696..dc4f3588d 100644 --- a/packages/datalib/src/TableGridDisplay.ts +++ b/packages/datalib/src/TableGridDisplay.ts @@ -266,6 +266,7 @@ export class TableGridDisplay extends GridDisplay { uniqueName, uniquePath, isPrimaryKey: table.primaryKey && !!table.primaryKey.columns.find(x => x.columnName == col.columnName), + hasAutoValue: col.hasAutoValue, foreignKey: table.foreignKeys && table.foreignKeys.find(fk => fk.columns.length == 1 && fk.columns[0].columnName == col.columnName), diff --git a/packages/types/dbinfo.d.ts b/packages/types/dbinfo.d.ts index 0f5a0b99f..0089db292 100644 --- a/packages/types/dbinfo.d.ts +++ b/packages/types/dbinfo.d.ts @@ -66,6 +66,7 @@ export interface ColumnInfo extends NamedObjectInfo { options?: []; canSelectMultipleOptions?: boolean; undropColumnName?: string; + hasAutoValue?: boolean; } export interface DatabaseObjectInfo extends NamedObjectInfo { diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte index fe79b787d..d2f772e4a 100644 --- a/packages/web/src/datagrid/DataGridCore.svelte +++ b/packages/web/src/datagrid/DataGridCore.svelte @@ -615,6 +615,7 @@ if (column.uniquePath.length > 1) continue; if (column.autoIncrement) continue; if (column.isClusterKey) continue; + if (column.hasAutoValue) continue; grider.setCellValue(rowIndex, column.uniqueName, grider.getRowData(index)[column.uniqueName]); } diff --git a/plugins/dbgate-plugin-mssql/src/backend/MsSqlAnalyser.js b/plugins/dbgate-plugin-mssql/src/backend/MsSqlAnalyser.js index 1451c0177..020b0d315 100644 --- a/plugins/dbgate-plugin-mssql/src/backend/MsSqlAnalyser.js +++ b/plugins/dbgate-plugin-mssql/src/backend/MsSqlAnalyser.js @@ -78,6 +78,7 @@ function getColumnInfo({ defaultValue, defaultConstraint, computedExpression: simplifyComutedExpression(computedExpression), + hasAutoValue: !!(dataType == 'timestamp' || dataType == 'rowversion' || computedExpression), }; }