1//===----------------------------------------------------------------------===//
2// DuckDB
3//
4// duckdb/planner/operator/logical_delim_get.hpp
5//
6//
7//===----------------------------------------------------------------------===//
8
9#pragma once
10
11#include "duckdb/planner/logical_operator.hpp"
12
13namespace duckdb {
14
15//! LogicalDelimGet represents a duplicate eliminated scan belonging to a DelimJoin
16class LogicalDelimGet : public LogicalOperator {
17public:
18 LogicalDelimGet(idx_t table_index, vector<TypeId> types)
19 : LogicalOperator(LogicalOperatorType::DELIM_GET), table_index(table_index) {
20 assert(types.size() > 0);
21 chunk_types = types;
22 }
23
24 //! The table index in the current bind context
25 idx_t table_index;
26 //! The types of the chunk
27 vector<TypeId> chunk_types;
28
29public:
30 vector<ColumnBinding> GetColumnBindings() override {
31 return GenerateColumnBindings(table_index, chunk_types.size());
32 }
33
34protected:
35 void ResolveTypes() override {
36 // types are resolved in the constructor
37 this->types = chunk_types;
38 }
39};
40} // namespace duckdb
41