dbms: Fixed a bug. [#METR-10615]

This commit is contained in:
Michael Kolupaev 2014-03-27 23:47:51 +04:00
parent eba3126077
commit 852d35615c
3 changed files with 15 additions and 6 deletions

View File

@ -60,7 +60,16 @@ public:
DB::ErrorCodes::UNKNOWN_IDENTIFIER);
}
select_expression_list.swap(result);
for (auto & child : children)
{
if (child == select_expression_list)
{
child = result;
break;
}
}
select_expression_list = result;
}
ASTPtr clone() const

View File

@ -104,13 +104,13 @@ InterpreterSelectQuery::InterpreterSelectQuery(ASTPtr query_ptr_, const Context
context(context_), settings(context.getSettings()), to_stage(to_stage_), subquery_depth(subquery_depth_),
log(&Logger::get("InterpreterSelectQuery"))
{
init(input_);
/** Оставляем в запросе в секции SELECT только нужные столбцы.
* Но если используется DISTINCT, то все столбцы считаются нужными, так как иначе DISTINCT работал бы по-другому.
*/
if (!query.distinct)
query.rewriteSelectExpressionList(required_column_names_);
init(input_);
}
InterpreterSelectQuery::InterpreterSelectQuery(ASTPtr query_ptr_, const Context & context_, const Names & required_column_names_,
@ -119,13 +119,13 @@ InterpreterSelectQuery::InterpreterSelectQuery(ASTPtr query_ptr_, const Context
context(context_), settings(context.getSettings()), to_stage(to_stage_), subquery_depth(subquery_depth_),
log(&Logger::get("InterpreterSelectQuery"))
{
init(input_, table_column_names);
/** Оставляем в запросе в секции SELECT только нужные столбцы.
* Но если используется DISTINCT, то все столбцы считаются нужными, так как иначе DISTINCT работал бы по-другому.
*/
if (!query.distinct)
query.rewriteSelectExpressionList(required_column_names_);
init(input_, table_column_names);
}
void InterpreterSelectQuery::getDatabaseAndTableNames(String & database_name, String & table_name)

View File

@ -1 +1 @@
SELECT count() FROM (SELECT sum(1), sum(2))
SELECT count() FROM (SELECT sum(materialize(1)), sum(materialize(2)))