1//===----------------------------------------------------------------------===//
2// DuckDB
3//
4// duckdb/planner/plan_serialization.hpp
5//
6//
7//===----------------------------------------------------------------------===//
8
9#pragma once
10
11#include "duckdb/common/enums/logical_operator_type.hpp"
12#include "duckdb/common/enums/expression_type.hpp"
13#include "duckdb/planner/bound_parameter_map.hpp"
14
15namespace duckdb {
16class ClientContext;
17class LogicalOperator;
18struct BoundParameterData;
19
20struct PlanDeserializationState {
21 PlanDeserializationState(ClientContext &context);
22 ~PlanDeserializationState();
23
24 ClientContext &context;
25 bound_parameter_map_t parameter_data;
26};
27
28struct LogicalDeserializationState {
29 LogicalDeserializationState(PlanDeserializationState &gstate, LogicalOperatorType type,
30 vector<unique_ptr<LogicalOperator>> &children);
31
32 PlanDeserializationState &gstate;
33 LogicalOperatorType type;
34 vector<unique_ptr<LogicalOperator>> &children;
35};
36
37struct ExpressionDeserializationState {
38 ExpressionDeserializationState(PlanDeserializationState &gstate, ExpressionType type);
39
40 PlanDeserializationState &gstate;
41 ExpressionType type;
42};
43
44} // namespace duckdb
45