1//===----------------------------------------------------------------------===//
2// DuckDB
3//
4// duckdb/execution/operator/projection/physical_projection.hpp
5//
6//
7//===----------------------------------------------------------------------===//
8
9#pragma once
10
11#include "duckdb/execution/physical_operator.hpp"
12
13namespace duckdb {
14
15class PhysicalProjection : public PhysicalOperator {
16public:
17 PhysicalProjection(vector<TypeId> &types, vector<unique_ptr<Expression>> select_list)
18 : PhysicalOperator(PhysicalOperatorType::PROJECTION, types), select_list(move(select_list)) {
19 }
20 PhysicalProjection(LogicalOperator &op, vector<unique_ptr<Expression>> select_list)
21 : PhysicalProjection(op.types, move(select_list)) {
22 }
23
24 vector<unique_ptr<Expression>> select_list;
25
26public:
27 void GetChunkInternal(ClientContext &context, DataChunk &chunk, PhysicalOperatorState *state) override;
28
29 unique_ptr<PhysicalOperatorState> GetOperatorState() override;
30 string ExtraRenderInformation() const override;
31};
32
33} // namespace duckdb
34