MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / buildAdditionalFiltersIfNeeded

Function buildAdditionalFiltersIfNeeded

src/Planner/PlannerJoinTree.cpp:685–701  ·  view source on GitHub ↗

Apply filters from additional_table_filters setting. Expects `parseAdditionalFilterAstIfNeeded` to have been called earlier so `table_expression_query_info.additional_filter_ast` is populated.

Source from the content-addressed store, hash-verified

683/// `parseAdditionalFilterAstIfNeeded` to have been called earlier so
684/// `table_expression_query_info.additional_filter_ast` is populated.
685std::optional<FilterDAGInfo> buildAdditionalFiltersIfNeeded(
686 SelectQueryInfo & table_expression_query_info,
687 const PrewhereInfoPtr & prewhere_info,
688 PlannerContextPtr & planner_context)
689{
690 const auto & additional_filter_ast = table_expression_query_info.additional_filter_ast;
691 if (!additional_filter_ast)
692 return {};
693
694 auto filter_info = buildFilterInfo(additional_filter_ast, table_expression_query_info.table_expression, planner_context);
695 if (prewhere_info)
696 {
697 for (const auto * input : filter_info.actions.getInputs())
698 prewhere_info->prewhere_actions.tryRestoreColumn(input->result_name);
699 }
700 return filter_info;
701}
702
703UInt64 mainQueryNodeBlockSizeByLimit(const SelectQueryInfo & select_query_info)
704{

Callers 1

Calls 2

buildFilterInfoFunction · 0.85
tryRestoreColumnMethod · 0.80

Tested by

no test coverage detected