clickhouse: edit table options

This commit is contained in:
Jan Prochazka
2024-09-11 12:51:09 +02:00
parent f6e0b634f0
commit ff33ec668b
6 changed files with 186 additions and 6 deletions

View File

@@ -3,6 +3,53 @@ const Dumper = require('./Dumper');
const { mysqlSplitterOptions } = require('dbgate-query-splitter/lib/options');
const _cloneDeepWith = require('lodash/cloneDeepWith');
const clickhouseEngines = [
'MergeTree',
'ReplacingMergeTree',
'SummingMergeTree',
'AggregatingMergeTree',
'CollapsingMergeTree',
'VersionedCollapsingMergeTree',
'GraphiteMergeTree',
'Distributed',
'Log',
'TinyLog',
'StripeLog',
'Memory',
'File',
'URL',
'JDBC',
'ODBC',
'Buffer',
'Null',
'Kafka',
'HDFS',
'S3',
'Merge',
'Join',
'MaterializedView',
'Dictionary',
'MySQL',
'PostgreSQL',
'MongoDB',
'EmbeddedRocksDB',
'View',
'MaterializeMySQL',
'MaterializePostgreSQL',
'ReplicatedMergeTree',
'ReplicatedReplacingMergeTree',
'ReplicatedSummingMergeTree',
'ReplicatedAggregatingMergeTree',
'ReplicatedCollapsingMergeTree',
'ReplicatedVersionedCollapsingMergeTree',
'ReplicatedGraphiteMergeTree',
'ExternalDistributed',
'Iceberg',
'Parquet',
'ORC',
'DeltaLake',
];
/** @type {import('dbgate-types').SqlDialect} */
const dialect = {
limitSelect: true,
@@ -70,6 +117,26 @@ const driver = {
}
return res;
},
getTableFormOptions: (intent) => {
const isNewTable = intent == 'newTableForm';
return [
{
type: isNewTable ? 'dropdowntext' : text,
options: clickhouseEngines,
label: 'Engine',
name: 'tableEngine',
sqlFormatString: '^engine = %s',
disabled: !isNewTable,
},
{
type: 'text',
label: 'Comment',
name: 'objectComment',
sqlFormatString: '^comment %v',
},
];
},
};
module.exports = driver;