1//===----------------------------------------------------------------------===//
2// DuckDB
3//
4// duckdb/planner/operator/logical_show.hpp
5//
6//
7//===----------------------------------------------------------------------===//
8
9#pragma once
10
11#include "duckdb/planner/logical_operator.hpp"
12
13namespace duckdb {
14
15class LogicalShow : public LogicalOperator {
16 LogicalShow() : LogicalOperator(LogicalOperatorType::LOGICAL_SHOW) {};
17
18public:
19 static constexpr const LogicalOperatorType TYPE = LogicalOperatorType::LOGICAL_SHOW;
20
21public:
22 explicit LogicalShow(unique_ptr<LogicalOperator> plan) : LogicalOperator(LogicalOperatorType::LOGICAL_SHOW) {
23 children.push_back(x: std::move(plan));
24 }
25
26 vector<LogicalType> types_select;
27 vector<string> aliases;
28
29public:
30 void Serialize(FieldWriter &writer) const override;
31 static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
32
33protected:
34 void ResolveTypes() override {
35 types = {LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR,
36 LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR};
37 }
38 vector<ColumnBinding> GetColumnBindings() override {
39 return GenerateColumnBindings(table_idx: 0, column_count: types.size());
40 }
41};
42} // namespace duckdb
43