Turi Create
4.0
|
#include <core/storage/query_engine/planning/planner_node.hpp>
Public Member Functions | |
std::shared_ptr< planner_node > | clone () |
Static Public Member Functions | |
static std::shared_ptr< planner_node > | make_shared (planner_node_type operator_type, const std::map< std::string, flexible_type > &operator_parameters=std::map< std::string, flexible_type >(), const std::map< std::string, any > &any_operator_parameters=std::map< std::string, any >(), const std::vector< std::shared_ptr< planner_node >> &inputs=std::vector< std::shared_ptr< planner_node >>()) |
Public Attributes | |
planner_node_type | operator_type = planner_node_type::INVALID |
std::map< std::string, flexible_type > | operator_parameters |
std::map< std::string, any > | any_operator_parameters |
std::vector< std::shared_ptr< planner_node > > | inputs |
std::shared_ptr< qp_info > | qpi |
The logical node describing an operator in a logical operator graph.
The planner node is a simple datastructure comprising of just a few elements:
operator_type
One of the operator enumerations in operator_properties.hpp operator_parameters
(map of string->flexible_type>: The parameters for the operator. This is operator dependent and is defined by the operator itself. Generally, user's of the planner node should not need this, and should just call planner_node_traits<...>::make_plan() to create an operator node. key names begining with "__" are reserved (for instance, for memoizations, etc) any_operator_parameters
(map of string->any): Non-portable parameters. Operators which use this will generally not work for going distributed. key names begining with "__" are reserved. (for instance, for memoizations, etc) inputs
(vector of shared_ptr<planner_node>) Inputs to the operators are defined here. Definition at line 47 of file planner_node.hpp.
|
inline |
Makes copy of the node.
Definition at line 92 of file planner_node.hpp.
|
inlinestatic |
Alternative constructor which creates a shared_ptr<planner_node>
Definition at line 100 of file planner_node.hpp.
std::map<std::string, any> turi::query_eval::planner_node::any_operator_parameters |
This field holds all other non-portable parameters. For instance, function pointers, etc. Operators / Planner nodes which depend on this will generally, not work for going distributed.
Definition at line 79 of file planner_node.hpp.
std::vector<std::shared_ptr<planner_node> > turi::query_eval::planner_node::inputs |
The inputs to the operator.
Definition at line 83 of file planner_node.hpp.
std::map<std::string, flexible_type> turi::query_eval::planner_node::operator_parameters |
A generic field for holding the parameters of the operator.
Definition at line 72 of file planner_node.hpp.
planner_node_type turi::query_eval::planner_node::operator_type = planner_node_type::INVALID |
The name of the operator.
Definition at line 67 of file planner_node.hpp.
std::shared_ptr<qp_info> turi::query_eval::planner_node::qpi |
A struct to hold the accompaning info for the node.
Definition at line 87 of file planner_node.hpp.