fix(grid): allow generated insert columns

This commit is contained in:
t8y2
2026-05-13 17:37:29 +08:00
parent 9dd184a26b
commit 42501cc8fb
2 changed files with 25 additions and 1 deletions
+10 -1
View File
@@ -14,6 +14,7 @@ export interface DataGridColumnInfo {
name: string;
is_nullable: boolean;
column_default?: string | null;
extra?: string | null;
}
export interface DataGridSaveStatementOptions {
@@ -38,7 +39,11 @@ export function validateDataGridSave(options: DataGridSaveValidationOptions): st
const notNullColumns = new Set(
(options.columnInfo ?? [])
.filter(
(column) => !column.is_nullable && !column.column_default && !isOracleRowId(options.databaseType, column.name),
(column) =>
!column.is_nullable &&
!column.column_default &&
!isAutoGeneratedColumn(column) &&
!isOracleRowId(options.databaseType, column.name),
)
.map((column) => normalizeColumnName(column.name)),
);
@@ -214,6 +219,10 @@ function isOracleRowId(databaseType: DatabaseType | undefined, name: string | un
return databaseType === "oracle" && name?.toUpperCase() === DBX_ROWID_COLUMN;
}
function isAutoGeneratedColumn(column: DataGridColumnInfo): boolean {
return /\b(auto_increment|autoincrement|identity)\b/i.test(column.extra ?? "");
}
function isNullWriteToNotNullColumn(
databaseType: DatabaseType | undefined,
notNullColumns: Set<string>,