ClickHouse/dbms/include/DB/Interpreters/InterpreterCreateQuery.h

37 lines
1.5 KiB
C
Raw Normal View History

2011-08-18 20:33:20 +00:00
#pragma once
#include <DB/Storages/IStorage.h>
#include <DB/Interpreters/Context.h>
namespace DB
{
2011-11-05 23:31:19 +00:00
/** Позволяет создать новую таблицу, или создать объект уже существующей таблицы, или создать БД, или создать объект уже существующей БД
2011-08-18 20:33:20 +00:00
*/
class InterpreterCreateQuery
{
public:
2012-03-05 00:09:41 +00:00
InterpreterCreateQuery(ASTPtr query_ptr_, Context & context_);
2011-11-01 15:16:04 +00:00
2011-11-05 23:31:19 +00:00
/** В случае таблицы: добавляет созданную таблицу в контекст, а также возвращает её.
* В случае БД: добавляет созданную БД в контекст и возвращает NULL.
* assume_metadata_exists - не проверять наличие файла с метаданными и не создавать его
* (для случая выполнения запроса из существующего файла с метаданными).
2011-11-05 23:31:19 +00:00
*/
StoragePtr execute(bool assume_metadata_exists = false);
2014-07-10 11:13:45 +00:00
/** AST в список столбцов с типами и обратно. Столбцы типа Nested развернуты в список настоящих столбцов.
*/
static NamesAndTypesList parseColumns(ASTPtr expression_list, const DataTypeFactory & data_type_factory);
static ASTPtr formatColumns(const NamesAndTypesList & columns);
2013-02-08 17:06:29 +00:00
2011-11-01 15:16:04 +00:00
private:
ASTPtr query_ptr;
Context context;
2011-08-18 20:33:20 +00:00
};
}