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

Function buildRowPolicyFilterIfNeeded

src/Planner/PlannerJoinTree.cpp:584–604  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

582}
583
584std::optional<FilterDAGInfo> buildRowPolicyFilterIfNeeded(const StoragePtr & storage,
585 SelectQueryInfo & table_expression_query_info,
586 PlannerContextPtr & planner_context,
587 std::set<std::string> & used_row_policies)
588{
589 const auto & query_context = planner_context->getQueryContext();
590
591 auto row_policy_filter = getEffectiveRowPolicyFilter(storage, query_context);
592 if (!row_policy_filter)
593 return {};
594
595 for (const auto & row_policy : row_policy_filter->policies)
596 {
597 auto name = row_policy->getFullName().toString();
598 if (query_context->hasQueryContext())
599 query_context->getQueryContext()->addUsedRowPolicy(name);
600 used_row_policies.emplace(std::move(name));
601 }
602
603 return buildFilterInfo(row_policy_filter->expression, table_expression_query_info.table_expression, planner_context);
604}
605
606std::optional<FilterDAGInfo> buildCustomKeyFilterIfNeeded(const StoragePtr & storage,
607 SelectQueryInfo & table_expression_query_info,

Callers 1

Calls 8

buildFilterInfoFunction · 0.85
hasQueryContextMethod · 0.80
addUsedRowPolicyMethod · 0.80
getQueryContextMethod · 0.45
toStringMethod · 0.45
getFullNameMethod · 0.45
emplaceMethod · 0.45

Tested by

no test coverage detected