1//===----------------------------------------------------------------------===//
2// DuckDB
3//
4// duckdb/execution/operator/join/physical_delim_join.hpp
5//
6//
7//===----------------------------------------------------------------------===//
8
9#pragma once
10
11#include "duckdb/common/types/chunk_collection.hpp"
12#include "duckdb/execution/physical_operator.hpp"
13
14namespace duckdb {
15//! PhysicalDelimJoin represents a join where the LHS will be duplicate eliminated and pushed into a
16//! PhysicalChunkCollectionScan in the RHS.
17class PhysicalDelimJoin : public PhysicalOperator {
18public:
19 PhysicalDelimJoin(LogicalOperator &op, unique_ptr<PhysicalOperator> original_join,
20 vector<PhysicalOperator *> delim_scans);
21
22 unique_ptr<PhysicalOperator> join;
23 unique_ptr<PhysicalOperator> distinct;
24 ChunkCollection lhs_data;
25 ChunkCollection delim_data;
26
27public:
28 void GetChunkInternal(ClientContext &context, DataChunk &chunk, PhysicalOperatorState *state) override;
29 unique_ptr<PhysicalOperatorState> GetOperatorState() override;
30 string ExtraRenderInformation() const override;
31};
32
33} // namespace duckdb
34