fix(sqlserver): align insert hints with generated columns

This commit is contained in:
zipg authored and GitHub committed 2026-07-20 02:29:28 +08:00
1 parent f5cdbb8662
commit 49a1172469
14 files changed
+341 -81

No files matched your search

@@ -0,0 +1,14 @@
import type { DatabaseType, SqlServerColumnMetadata } from "@/types/database";
type InsertValueHintColumn = Pick<SqlServerColumnMetadata, "name"> & Partial<Pick<SqlServerColumnMetadata, "is_identity" | "is_computed" | "is_hidden" | "generated_always_type">>;
export function insertValueHintColumnNames(databaseType: DatabaseType | undefined, columns: readonly InsertValueHintColumn[]): string[] {
return columns
.filter((column) => {
if (databaseType !== "sqlserver") return true;
// SQL Server reports computed and temporal period columns independently;
// check every structured flag so positional VALUES only maps writable columns.
return !column.is_identity && !column.is_computed && !column.is_hidden && (column.generated_always_type ?? 0) === 0;
})
.map((column) => column.name);
}