//===----------------------------------------------------------------------===// // DuckDB // // duckdb/execution/operator/scan/physical_positional_scan.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/execution/physical_operator.hpp" #include "duckdb/function/table_function.hpp" #include "duckdb/planner/table_filter.hpp" #include "duckdb/storage/data_table.hpp" namespace duckdb { //! Represents a scan of a base table class PhysicalPositionalScan : public PhysicalOperator { public: static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::POSITIONAL_SCAN; public: //! Regular Table Scan PhysicalPositionalScan(vector types, unique_ptr left, unique_ptr right); //! The child table functions vector> child_tables; public: bool Equals(const PhysicalOperator &other) const override; public: unique_ptr GetLocalSourceState(ExecutionContext &context, GlobalSourceState &gstate) const override; unique_ptr GetGlobalSourceState(ClientContext &context) const override; SourceResultType GetData(ExecutionContext &context, DataChunk &chunk, OperatorSourceInput &input) const override; double GetProgress(ClientContext &context, GlobalSourceState &gstate) const override; bool IsSource() const override { return true; } }; } // namespace duckdb