//===----------------------------------------------------------------------===// // DuckDB // // duckdb/execution/operator/helper/physical_streaming_limit.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/execution/physical_operator.hpp" #include "duckdb/planner/expression.hpp" namespace duckdb { class PhysicalStreamingLimit : public PhysicalOperator { public: static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::STREAMING_LIMIT; public: PhysicalStreamingLimit(vector types, idx_t limit, idx_t offset, unique_ptr limit_expression, unique_ptr offset_expression, idx_t estimated_cardinality, bool parallel); idx_t limit_value; idx_t offset_value; unique_ptr limit_expression; unique_ptr offset_expression; bool parallel; public: // Operator interface unique_ptr GetOperatorState(ExecutionContext &context) const override; unique_ptr GetGlobalOperatorState(ClientContext &context) const override; OperatorResultType Execute(ExecutionContext &context, DataChunk &input, DataChunk &chunk, GlobalOperatorState &gstate, OperatorState &state) const override; OrderPreservationType OperatorOrder() const override; bool ParallelOperator() const override; }; } // namespace duckdb