1//===----------------------------------------------------------------------===//
2// DuckDB
3//
4// duckdb/planner/expression/bound_unnest_expression.hpp
5//
6//
7//===----------------------------------------------------------------------===//
8
9#pragma once
10
11#include "duckdb/planner/expression.hpp"
12
13namespace duckdb {
14
15//! Represents a function call that has been bound to a base function
16class BoundUnnestExpression : public Expression {
17public:
18 static constexpr const ExpressionClass TYPE = ExpressionClass::BOUND_UNNEST;
19
20public:
21 explicit BoundUnnestExpression(LogicalType return_type);
22
23 unique_ptr<Expression> child;
24
25public:
26 bool IsFoldable() const override;
27 string ToString() const override;
28
29 hash_t Hash() const override;
30 bool Equals(const BaseExpression &other) const override;
31
32 unique_ptr<Expression> Copy() override;
33
34 void Serialize(FieldWriter &writer) const override;
35 static unique_ptr<Expression> Deserialize(ExpressionDeserializationState &state, FieldReader &reader);
36};
37} // namespace duckdb
38