Files
dbgate/plugins/dbgate-plugin-clickhouse/src/frontend/Dumper.js
2024-10-29 16:18:57 +01:00

48 lines
1.3 KiB
JavaScript

const { SqlDumper } = global.DBGATE_PACKAGES['dbgate-tools'];
class Dumper extends SqlDumper {
setTableOptionCore(table, optionName, optionValue, formatString) {
this.put('^alter ^table %f ^modify ', table);
this.put(formatString, optionValue);
}
changeColumn(oldcol, newcol, constraints) {
if (oldcol.columnName != newcol.columnName) {
this.putCmd('^alter ^table %f ^rename ^column %i ^to %i', oldcol, oldcol.columnName, newcol.columnName);
}
this.put('^alter ^table %f ^modify ^column %i ', newcol, newcol.columnName);
this.columnDefinition(newcol);
if (oldcol.defaultValue != null && newcol.defaultValue == null) {
this.put(' ^remove ^default ');
}
this.endCommand();
}
columnType(dataType) {
this.putRaw(dataType || this.dialect.fallbackDataType);
}
renameColumn(column, newcol) {
this.putCmd('^alter ^table %f ^rename ^column %i ^to %i', column, column.columnName, newcol);
}
renameTable(obj, newName) {
this.putCmd('^rename ^table %f ^to %i', obj, newName);
}
tableOptions(table) {
super.tableOptions(table);
if (table.sortingKey) {
this.put(
'&n^order ^by (%,i)',
table.sortingKey.columns.map((x) => x.columnName)
);
}
}
autoIncrement() {}
}
module.exports = Dumper;