//===----------------------------------------------------------------------===// // DuckDB // // duckdb/execution/column_binding_resolver.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/planner/logical_operator_visitor.hpp" #include "duckdb/planner/column_binding_map.hpp" #include "duckdb/common/vector.hpp" namespace duckdb { //! The ColumnBindingResolver resolves ColumnBindings into base tables //! (table_index, column_index) into physical indices into the DataChunks that //! are used within the execution engine class ColumnBindingResolver : public LogicalOperatorVisitor { public: ColumnBindingResolver(); void VisitOperator(LogicalOperator &op) override; static void Verify(LogicalOperator &op); protected: vector bindings; unique_ptr VisitReplace(BoundColumnRefExpression &expr, unique_ptr *expr_ptr) override; static unordered_set VerifyInternal(LogicalOperator &op); }; } // namespace duckdb