From b9443c98feab6e0e4b421ef2bb328932eee7e4ba Mon Sep 17 00:00:00 2001 From: zhang2014 Date: Wed, 5 Feb 2020 16:00:06 +0800 Subject: [PATCH] ISSUES-8971 fix view with predicate optimizer --- dbms/src/Storages/StorageView.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dbms/src/Storages/StorageView.cpp b/dbms/src/Storages/StorageView.cpp index 5f49cdb1263..3c0348eb30a 100644 --- a/dbms/src/Storages/StorageView.cpp +++ b/dbms/src/Storages/StorageView.cpp @@ -61,13 +61,13 @@ BlockInputStreams StorageView::read( auto new_outer_query = query_info.query->clone(); auto * new_outer_select = new_outer_query->as(); - replaceTableNameWithSubquery(new_outer_select, new_inner_query); - /// TODO: remove getTableExpressions and getTablesWithColumns { const auto & table_expressions = getTableExpressions(*new_outer_select); const auto & tables_with_columns = getDatabaseAndTablesWithColumnNames(table_expressions, context); + replaceTableNameWithSubquery(new_outer_select, new_inner_query); + auto & settings = context.getSettingsRef(); if (settings.joined_subquery_requires_alias && tables_with_columns.size() > 1) { @@ -109,7 +109,7 @@ void StorageView::replaceTableNameWithSubquery(ASTSelectQuery * select_query, AS const auto alias = table_expression->database_and_table_name->tryGetAlias(); table_expression->database_and_table_name = {}; table_expression->subquery = std::make_shared(); - table_expression->subquery->children.push_back(subquery); + table_expression->children.push_back(subquery); if (!alias.empty()) table_expression->subquery->setAlias(alias); }