提交 1e18ff37 编写于 作者: A Alexey Milovidov

dbms: fixed error with JOIN [#METR-14847].

上级 261a5494
......@@ -147,7 +147,7 @@ private:
*/
NamesAndTypesList columns;
/// Столбцы после ARRAY JOIN и/или агрегации.
/// Столбцы после ARRAY JOIN, JOIN и/или агрегации.
NamesAndTypesList aggregated_columns;
/// Таблица, из которой делается запрос.
......
......@@ -85,6 +85,13 @@ void ExpressionAction::prepare(Block & sample_block)
{
// std::cerr << "preparing: " << toString() << std::endl;
/** Константные выражения следует вычислить, и положить результат в sample_block.
* Для неконстантных столбцов, следует в качестве column в sample_block положить nullptr.
*
* Тот факт, что только для константных выражений column != nullptr,
* может использоваться в дальнейшем при оптимизации запроса.
*/
switch (type)
{
case APPLY_FUNCTION:
......@@ -156,7 +163,7 @@ void ExpressionAction::prepare(Block & sample_block)
case JOIN:
{
for (const auto & col : columns_added_by_join)
sample_block.insert(ColumnWithNameAndType(col.type->createColumn(), col.type, col.name));
sample_block.insert(ColumnWithNameAndType(nullptr, col.type, col.name));
break;
}
......
......@@ -152,6 +152,7 @@ void ExpressionAnalyzer::analyzeAggregation()
group_asts.pop_back();
i -= 1;
continue;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册