This commit is contained in:
Jan Prochazka 2024-06-01 13:08:51 +02:00
parent 728f3621eb
commit cafe0e68c3
2 changed files with 22 additions and 8 deletions

View File

@ -199,14 +199,8 @@ export class SqlDumper implements AlterProcessor {
selectScopeIdentity(table: TableInfo) {}
columnDefinition(column: ColumnInfo, { includeDefault = true, includeNullable = true, includeCollate = true } = {}) {
if (column.computedExpression) {
this.put('^as %s', column.computedExpression);
if (column.isPersisted) this.put(' ^persisted');
return;
}
const type = column.dataType || this.dialect.fallbackDataType;
columnType(dataType: string) {
const type = dataType || this.dialect.fallbackDataType;
const typeWithValues = type.match(/([^(]+)(\(.+[^)]\))/);
if (typeWithValues?.length) {
@ -217,6 +211,17 @@ export class SqlDumper implements AlterProcessor {
this.putRaw(SqlDumper.convertKeywordCase(type));
}
}
columnDefinition(column: ColumnInfo, { includeDefault = true, includeNullable = true, includeCollate = true } = {}) {
if (column.computedExpression) {
this.put('^as %s', column.computedExpression);
if (column.isPersisted) this.put(' ^persisted');
return;
}
this.columnType(column.dataType);
if (column.autoIncrement) {
this.autoIncrement();
}

View File

@ -15,6 +15,15 @@ class Dumper extends SqlDumper {
// oracle uses implicit transactions
beginTransaction() {}
columnDefinition(col, options) {
if (col.autoIncrement) {
super.columnType(col.dataType);
this.put(' ^generated ^by ^default ^on ^null ^as ^identity');
return;
}
super.columnDefinition(col, options);
}
// /** @param type {import('dbgate-types').TransformType} */
// transform(type, dumpExpr) {
// switch (type) {