1//===----------------------------------------------------------------------===//
2// DuckDB
3//
4// duckdb/planner/operator/logical_delete.hpp
5//
6//
7//===----------------------------------------------------------------------===//
8
9#pragma once
10
11#include "duckdb/planner/logical_operator.hpp"
12
13namespace duckdb {
14class TableCatalogEntry;
15
16class LogicalDelete : public LogicalOperator {
17public:
18 static constexpr const LogicalOperatorType TYPE = LogicalOperatorType::LOGICAL_DELETE;
19
20public:
21 explicit LogicalDelete(TableCatalogEntry &table, idx_t table_index);
22
23 TableCatalogEntry &table;
24 idx_t table_index;
25 bool return_chunk;
26
27public:
28 void Serialize(FieldWriter &writer) const override;
29 static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
30 idx_t EstimateCardinality(ClientContext &context) override;
31 vector<idx_t> GetTableIndex() const override;
32 string GetName() const override;
33
34protected:
35 vector<ColumnBinding> GetColumnBindings() override;
36 void ResolveTypes() override;
37};
38} // namespace duckdb
39