Turi Create  4.0
turi::query_eval::planner_node Struct Reference

#include <core/storage/query_engine/planning/planner_node.hpp>

Public Member Functions

std::shared_ptr< planner_nodeclone ()
 

Static Public Member Functions

static std::shared_ptr< planner_nodemake_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_typeoperator_parameters
 
std::map< std::string, anyany_operator_parameters
 
std::vector< std::shared_ptr< planner_node > > inputs
 
std::shared_ptr< qp_info > qpi
 

Detailed Description

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.

Member Function Documentation

◆ clone()

std::shared_ptr<planner_node> turi::query_eval::planner_node::clone ( )
inline

Makes copy of the node.

Definition at line 92 of file planner_node.hpp.

◆ make_shared()

static std::shared_ptr<planner_node> turi::query_eval::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>>() 
)
inlinestatic

Alternative constructor which creates a shared_ptr<planner_node>

Definition at line 100 of file planner_node.hpp.

Member Data Documentation

◆ any_operator_parameters

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.

◆ inputs

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.

◆ operator_parameters

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.

◆ operator_type

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.

◆ qpi

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.


The documentation for this struct was generated from the following file: