1#include "duckdb/execution/operator/join/physical_blockwise_nl_join.hpp"
2#include "duckdb/execution/physical_plan_generator.hpp"
3#include "duckdb/planner/operator/logical_any_join.hpp"
4
5namespace duckdb {
6
7unique_ptr<PhysicalOperator> PhysicalPlanGenerator::CreatePlan(LogicalAnyJoin &op) {
8 // first visit the child nodes
9 D_ASSERT(op.children.size() == 2);
10 D_ASSERT(op.condition);
11
12 auto left = CreatePlan(op&: *op.children[0]);
13 auto right = CreatePlan(op&: *op.children[1]);
14
15 // create the blockwise NL join
16 return make_uniq<PhysicalBlockwiseNLJoin>(args&: op, args: std::move(left), args: std::move(right), args: std::move(op.condition),
17 args&: op.join_type, args&: op.estimated_cardinality);
18}
19
20} // namespace duckdb
21