//===----------------------------------------------------------------------===// // DuckDB // // duckdb/main/relation/table_function_relation.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/main/relation.hpp" namespace duckdb { class TableFunctionRelation : public Relation { public: TableFunctionRelation(const std::shared_ptr &context, string name, vector parameters, named_parameter_map_t named_parameters, shared_ptr input_relation_p = nullptr, bool auto_init = true); TableFunctionRelation(const std::shared_ptr &context, string name, vector parameters, shared_ptr input_relation_p = nullptr, bool auto_init = true); string name; vector parameters; named_parameter_map_t named_parameters; vector columns; shared_ptr input_relation; public: unique_ptr GetQueryNode() override; unique_ptr GetTableRef() override; const vector &Columns() override; string ToString(idx_t depth) override; string GetAlias() override; void AddNamedParameter(const string &name, Value argument); private: void InitializeColumns(); private: //! Whether or not to auto initialize the columns on construction bool auto_initialize; }; } // namespace duckdb