//===----------------------------------------------------------------------===// // DuckDB // // duckdb/planner/operator/logical_sample.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/planner/logical_operator.hpp" #include "duckdb/parser/parsed_data/sample_options.hpp" namespace duckdb { //! LogicalSample represents a SAMPLE clause class LogicalSample : public LogicalOperator { public: static constexpr const LogicalOperatorType TYPE = LogicalOperatorType::LOGICAL_SAMPLE; public: LogicalSample(unique_ptr sample_options_p, unique_ptr child); //! The sample options unique_ptr sample_options; public: vector GetColumnBindings() override; idx_t EstimateCardinality(ClientContext &context) override; void Serialize(FieldWriter &writer) const override; static unique_ptr Deserialize(LogicalDeserializationState &state, FieldReader &reader); protected: void ResolveTypes() override; }; } // namespace duckdb