| 29 | |
| 30 | template <typename LogElement> |
| 31 | ASTPtr constructCreateTableQuery(const String & database_name, |
| 32 | const String & table_name, |
| 33 | const String & storage_def) |
| 34 | { |
| 35 | auto create = std::make_shared<ASTCreateQuery>(); |
| 36 | create->database = database_name; |
| 37 | create->table = table_name; |
| 38 | |
| 39 | auto ordinary_columns = LogElement::getNamesAndTypes(); |
| 40 | auto alias_columns = LogElement::getNamesAndAliases(); |
| 41 | auto new_columns_list = std::make_shared<ASTColumns>(); |
| 42 | new_columns_list->set(new_columns_list->columns, InterpreterCreateQuery::formatColumns(ordinary_columns, alias_columns, ParserSettings::CLICKHOUSE)); |
| 43 | create->set(create->columns_list, new_columns_list); |
| 44 | |
| 45 | ParserStorage storage_parser; |
| 46 | ASTPtr storage_ast = parseQuery( |
| 47 | storage_parser, storage_def.data(), storage_def.data() + storage_def.size(), |
| 48 | "Storage to create table for " + LogElement::name(), 0, DBMS_DEFAULT_MAX_PARSER_DEPTH); |
| 49 | create->set(create->storage, storage_ast); |
| 50 | |
| 51 | return create; |
| 52 | } |
| 53 | |
| 54 | template<typename CloudLog> |
| 55 | std::shared_ptr<CloudLog> createCnchLog( |
nothing calls this directly
no test coverage detected