fix(sqlserver): align insert hints with generated columns
This commit is contained in:
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);
|
||||
}
|
||||
Reference in new issue
Block a user