mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-22 09:40:49 +00:00
dbms: added pretty-formatting for GLOBAL IN; pedantic modifications in comments [#METR-10071].
This commit is contained in:
parent
2c14e9be41
commit
26848b6803
@ -97,7 +97,7 @@ public:
|
||||
/// Если ast - запрос SELECT, получает имена (алиасы) и типы столбцов из секции SELECT.
|
||||
Block getSelectSampleBlock();
|
||||
|
||||
/// Все новые временные таблицы, полученные при выполнении подзапросов Global In
|
||||
/// Все новые временные таблицы, полученные при выполнении подзапросов GLOBAL IN.
|
||||
std::vector<StoragePtr> external_tables;
|
||||
private:
|
||||
typedef std::set<String> NamesSet;
|
||||
@ -261,12 +261,12 @@ private:
|
||||
void normalizeTree();
|
||||
void normalizeTreeImpl(ASTPtr & ast, MapOfASTs & finished_asts, SetOfASTs & current_asts, std::string current_alias, bool in_sign_rewritten);
|
||||
|
||||
/// Обходит запрос и сохраняет найденные глобальные функции (например Global in)
|
||||
/// Обходит запрос и сохраняет найденные глобальные функции (например GLOBAL IN)
|
||||
void findGlobalFunctions(ASTPtr & ast, std::vector<ASTPtr> & global_nodes);
|
||||
|
||||
/// Превратить перечисление значений или подзапрос в ASTSet. node - функция in или notIn.
|
||||
void makeSet(ASTFunction * node, const Block & sample_block);
|
||||
/// Выполнить подзапрос в секции global in и запомнить результат во временную таблицу типа memory
|
||||
/// Выполнить подзапрос в секции GLOBAL IN и запомнить результат во временную таблицу типа memory
|
||||
/// Все новые временные таблицы хранятся в переменной external_tables
|
||||
void addExternalStorage(ASTFunction * node, size_t & name_id);
|
||||
|
||||
|
@ -569,7 +569,7 @@ void ExpressionAnalyzer::addExternalStorage(ASTFunction * node, size_t & name_id
|
||||
|
||||
bool parse_res = parser.parse(pos, end, subquery, expected);
|
||||
if (!parse_res)
|
||||
throw Exception("Error in parsing select query while creating set for table " + table->name + ".",
|
||||
throw Exception("Error in parsing SELECT query while creating set for table " + table->name + ".",
|
||||
ErrorCodes::LOGICAL_ERROR);
|
||||
}
|
||||
else
|
||||
@ -592,7 +592,7 @@ void ExpressionAnalyzer::addExternalStorage(ASTFunction * node, size_t & name_id
|
||||
external_tables.push_back(external_storage);
|
||||
}
|
||||
else
|
||||
throw Exception("Global in (notIn) supports only select data.", ErrorCodes::BAD_ARGUMENTS);
|
||||
throw Exception("GLOBAL [NOT] IN supports only SELECT data.", ErrorCodes::BAD_ARGUMENTS);
|
||||
}
|
||||
|
||||
|
||||
|
@ -78,7 +78,7 @@ void InterpreterSelectQuery::init(BlockInputStreamPtr input_, const NamesAndType
|
||||
|
||||
query_analyzer = new ExpressionAnalyzer(query_ptr, context, storage, subquery_depth);
|
||||
|
||||
/// Выполняем все Global in подзапросы, результаты будут сохранены в query_analyzer->external_tables
|
||||
/// Выполняем все GLOBAL IN подзапросы, результаты будут сохранены в query_analyzer->external_tables
|
||||
query_analyzer->processGlobalOperations();
|
||||
|
||||
/// Сохраняем в query context новые временные таблицы
|
||||
|
@ -498,6 +498,8 @@ void formatAST(const ASTFunction & ast, std::ostream & s, size_t indent, bool
|
||||
"notLike", " NOT LIKE ",
|
||||
"in", " IN ",
|
||||
"notIn", " NOT IN ",
|
||||
"globalIn", " GLOBAL IN ",
|
||||
"globalNotIn", " GLOBAL NOT IN ",
|
||||
nullptr
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user