improve change

This commit is contained in:
hchen9 2020-09-28 17:05:22 -07:00
parent 3ddcf590f6
commit fda6bde428
2 changed files with 3 additions and 1 deletions

View File

@ -1112,6 +1112,7 @@ void InterpreterSelectQuery::executeFetchColumns(
/// Optimization for trivial query like SELECT count() FROM table. /// Optimization for trivial query like SELECT count() FROM table.
bool optimize_trivial_count = bool optimize_trivial_count =
syntax_analyzer_result->optimize_trivial_count syntax_analyzer_result->optimize_trivial_count
&& settings.select_sequential_consistency
&& storage && storage
&& !filter_info && !filter_info
&& processing_stage == QueryProcessingStage::FetchColumns && processing_stage == QueryProcessingStage::FetchColumns
@ -1119,6 +1120,7 @@ void InterpreterSelectQuery::executeFetchColumns(
&& (query_analyzer->aggregates().size() == 1) && (query_analyzer->aggregates().size() == 1)
&& typeid_cast<AggregateFunctionCount *>(query_analyzer->aggregates()[0].function.get()); && typeid_cast<AggregateFunctionCount *>(query_analyzer->aggregates()[0].function.get());
if (optimize_trivial_count) if (optimize_trivial_count)
{ {
const auto & desc = query_analyzer->aggregates()[0]; const auto & desc = query_analyzer->aggregates()[0];

View File

@ -619,7 +619,7 @@ TreeRewriterResultPtr TreeRewriter::analyzeSelect(
result.ast_join = select_query->join(); result.ast_join = select_query->join();
if (result.optimize_trivial_count) if (result.optimize_trivial_count)
result.optimize_trivial_count = settings.optimize_trivial_count_query && settings.select_sequential_consistency && result.optimize_trivial_count = settings.optimize_trivial_count_query &&
!select_query->where() && !select_query->prewhere() && !select_query->groupBy() && !select_query->having() && !select_query->where() && !select_query->prewhere() && !select_query->groupBy() && !select_query->having() &&
!select_query->sampleSize() && !select_query->sampleOffset() && !select_query->final() && !select_query->sampleSize() && !select_query->sampleOffset() && !select_query->final() &&
(tables_with_columns.size() < 2 || isLeft(result.analyzed_join->kind())); (tables_with_columns.size() < 2 || isLeft(result.analyzed_join->kind()));