diff --git a/packages/tools/src/SqlDumper.ts b/packages/tools/src/SqlDumper.ts index e0a72d0c7..7f2b29cc3 100644 --- a/packages/tools/src/SqlDumper.ts +++ b/packages/tools/src/SqlDumper.ts @@ -531,7 +531,9 @@ export class SqlDumper implements AlterProcessor { renameConstraint(constraint: ConstraintInfo, newName: string) {} createColumn(column: ColumnInfo, constraints: ConstraintInfo[]) { - this.put('^alter ^table %f ^add %i ', column, column.columnName); + this.put('^alter ^table %f ^add ', column); + if (this.dialect.createColumnWithColumnKeyword) this.put('^column '); + this.put(' %i ', column.columnName); this.columnDefinition(column); this.inlineConstraints(constraints); this.endCommand(); diff --git a/packages/types/dialect.d.ts b/packages/types/dialect.d.ts index ffff7f0c2..6a28f7366 100644 --- a/packages/types/dialect.d.ts +++ b/packages/types/dialect.d.ts @@ -34,6 +34,9 @@ export interface SqlDialect { createCheck?: boolean; dropCheck?: boolean; + // syntax for create column: ALTER TABLE table ADD COLUMN column + createColumnWithColumnKeyword?: boolean; + dropReferencesWhenDropTable?: boolean; requireFromDual?: boolean; diff --git a/plugins/dbgate-plugin-clickhouse/src/frontend/driver.js b/plugins/dbgate-plugin-clickhouse/src/frontend/driver.js index d542c04d3..819490ae1 100644 --- a/plugins/dbgate-plugin-clickhouse/src/frontend/driver.js +++ b/plugins/dbgate-plugin-clickhouse/src/frontend/driver.js @@ -14,6 +14,8 @@ const dialect = { changeColumn: true, createIndex: true, dropIndex: true, + anonymousPrimaryKey: true, + createColumnWithColumnKeyword: true, columnProperties: { columnComment: true,