//===----------------------------------------------------------------------===// // DuckDB // // duckdb/planner/operator/logical_dummy_scan.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/planner/logical_operator.hpp" namespace duckdb { //! LogicalDummyScan represents a dummy scan returning a single row class LogicalDummyScan : public LogicalOperator { public: static constexpr const LogicalOperatorType TYPE = LogicalOperatorType::LOGICAL_DUMMY_SCAN; public: explicit LogicalDummyScan(idx_t table_index) : LogicalOperator(LogicalOperatorType::LOGICAL_DUMMY_SCAN), table_index(table_index) { } idx_t table_index; public: vector GetColumnBindings() override { return {ColumnBinding(table_index, 0)}; } idx_t EstimateCardinality(ClientContext &context) override { return 1; } void Serialize(FieldWriter &writer) const override; static unique_ptr Deserialize(LogicalDeserializationState &state, FieldReader &reader); vector GetTableIndex() const override; string GetName() const override; protected: void ResolveTypes() override { if (types.size() == 0) { types.emplace_back(LogicalType::INTEGER); } } }; } // namespace duckdb