//===----------------------------------------------------------------------===// // DuckDB // // duckdb/execution/operator/projection/physical_projection.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/execution/physical_operator.hpp" #include "duckdb/planner/expression.hpp" namespace duckdb { class PhysicalProjection : public PhysicalOperator { public: static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::PROJECTION; public: PhysicalProjection(vector types, vector> select_list, idx_t estimated_cardinality); vector> select_list; public: unique_ptr GetOperatorState(ExecutionContext &context) const override; OperatorResultType Execute(ExecutionContext &context, DataChunk &input, DataChunk &chunk, GlobalOperatorState &gstate, OperatorState &state) const override; bool ParallelOperator() const override { return true; } string ParamsToString() const override; static unique_ptr CreateJoinProjection(vector proj_types, const vector &lhs_types, const vector &rhs_types, const vector &left_projection_map, const vector &right_projection_map, const idx_t estimated_cardinality); }; } // namespace duckdb