Apply filters from additional_table_filters setting. Expects `parseAdditionalFilterAstIfNeeded` to have been called earlier so `table_expression_query_info.additional_filter_ast` is populated.
| 683 | /// `parseAdditionalFilterAstIfNeeded` to have been called earlier so |
| 684 | /// `table_expression_query_info.additional_filter_ast` is populated. |
| 685 | std::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 | |
| 703 | UInt64 mainQueryNodeBlockSizeByLimit(const SelectQueryInfo & select_query_info) |
| 704 | { |
no test coverage detected