6 #ifndef TURI_SFRAME_QUERY_ENGINE_INFER_OPERATOR_FIELD_H_ 7 #define TURI_SFRAME_QUERY_ENGINE_INFER_OPERATOR_FIELD_H_ 9 #include <core/logging/assertions.hpp> 13 #include <core/data/flexible_type/flexible_type.hpp> 15 namespace turi {
namespace query_eval {
19 struct query_operator_attributes;
27 BINARY_TRANSFORM_NODE,
34 LAMBDA_TRANSFORM_NODE,
35 GENERALIZED_TRANSFORM_NODE,
37 GENERALIZED_UNION_PROJECT_NODE,
101 const std::shared_ptr<planner_node>& b);
148 typedef std::function<std::string(std::shared_ptr<planner_node>)> pnode_tagger;
155 std::ostream& operator<<(std::ostream&,
156 const std::shared_ptr<planner_node>& node);
bool is_linear_transform(const query_operator_attributes &attr)
int64_t infer_planner_node_length(std::shared_ptr< planner_node > pnode)
std::string planner_node_type_to_name(planner_node_type type)
std::vector< size_t > get_parallel_slicable_codes(const std::shared_ptr< planner_node > &n)
bool is_linear_graph(const std::shared_ptr< planner_node > &n)
bool is_parallel_slicable(const std::shared_ptr< planner_node > &n)
size_t infer_planner_node_num_dependency_nodes(std::shared_ptr< planner_node > pnode)
size_t infer_planner_node_num_output_columns(std::shared_ptr< planner_node > pnode)
std::shared_ptr< query_operator > planner_node_to_operator(std::shared_ptr< planner_node > pnode)
planner_node_type planner_node_name_to_type(const std::string &name)
query_operator_attributes planner_node_type_to_attributes(planner_node_type type)
std::string planner_node_repr(const std::shared_ptr< planner_node > &node)
bool is_sublinear_transform(const query_operator_attributes &attr)
std::pair< bool, bool > prove_equal_length(const std::shared_ptr< planner_node > &a, const std::shared_ptr< planner_node > &b)
bool consumes_inputs_at_same_rates(const query_operator_attributes &attr)
std::vector< flex_type_enum > infer_planner_node_type(std::shared_ptr< planner_node > pnode)
bool is_source_node(const query_operator_attributes &attr)