38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
|
/* eslint max-len: 0 */
|
||
|
|
||
|
const TableCompiler = require('../postgres/schema/pg-tablecompiler');
|
||
|
|
||
|
class TableCompiler_CRDB extends TableCompiler {
|
||
|
constructor(client, tableBuilder) {
|
||
|
super(client, tableBuilder);
|
||
|
}
|
||
|
|
||
|
addColumns(columns, prefix, colCompilers) {
|
||
|
if (prefix === this.alterColumnsPrefix) {
|
||
|
// alter columns
|
||
|
for (const col of colCompilers) {
|
||
|
this.client.logger.warn(
|
||
|
'Experimental alter column in use, see issue: https://github.com/cockroachdb/cockroach/issues/49329'
|
||
|
);
|
||
|
this.pushQuery({
|
||
|
sql: 'SET enable_experimental_alter_column_type_general = true',
|
||
|
bindings: [],
|
||
|
});
|
||
|
super._addColumn(col);
|
||
|
}
|
||
|
} else {
|
||
|
// base class implementation for normal add
|
||
|
super.addColumns(columns, prefix);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
dropUnique(columns, indexName) {
|
||
|
indexName = indexName
|
||
|
? this.formatter.wrap(indexName)
|
||
|
: this._indexCommand('unique', this.tableNameRaw, columns);
|
||
|
this.pushQuery(`drop index ${this.tableName()}@${indexName} cascade `);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = TableCompiler_CRDB;
|