mirror of
https://github.com/t8y2/dbx.git
synced 2026-10-31 00:22:30 +00:00
fix(grid): allow generated insert columns
This commit is contained in:
+10
-1
@@ -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>,
|
||||
|
||||
Reference in New Issue
Block a user