From dcaa75fe9c977b3a9571999b20a3d01d2d6fff4f Mon Sep 17 00:00:00 2001 From: Michael Kolupaev Date: Fri, 7 Mar 2014 16:10:37 +0400 Subject: [PATCH] clickhouse: probably fixed. [#METR-10364] --- dbms/src/Interpreters/ExpressionAnalyzer.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/dbms/src/Interpreters/ExpressionAnalyzer.cpp b/dbms/src/Interpreters/ExpressionAnalyzer.cpp index e56b8284a96..4119f76b302 100644 --- a/dbms/src/Interpreters/ExpressionAnalyzer.cpp +++ b/dbms/src/Interpreters/ExpressionAnalyzer.cpp @@ -782,14 +782,17 @@ void ExpressionAnalyzer::getActionsImpl(ASTPtr ast, bool no_subqueries, bool onl } else { - /// Мы в той части дерева, которую не собираемся вычислять. Нужно только определить типы. - /// Не будем выполнять подзапросы и составлять множества. Вставим произвольный столбец правильного типа. - ColumnWithNameAndType fake_column; - fake_column.name = node->getColumnName(); - fake_column.type = new DataTypeUInt8; - fake_column.column = new ColumnConstUInt8(1, 0); - actions_stack.addAction(ExpressionActions::Action::addColumn(fake_column)); - getActionsImpl(node->arguments->children[0], no_subqueries, only_consts, actions_stack); + if (!only_consts) + { + /// Мы в той части дерева, которую не собираемся вычислять. Нужно только определить типы. + /// Не будем выполнять подзапросы и составлять множества. Вставим произвольный столбец правильного типа. + ColumnWithNameAndType fake_column; + fake_column.name = node->getColumnName(); + fake_column.type = new DataTypeUInt8; + fake_column.column = new ColumnConstUInt8(1, 0); + actions_stack.addAction(ExpressionActions::Action::addColumn(fake_column)); + getActionsImpl(node->arguments->children[0], no_subqueries, only_consts, actions_stack); + } return; } }