Turi Create
4.0
|
Typedefs | |
typedef std::shared_ptr< planner_node > | pnode_ptr |
A handy typedef. | |
Enumerations | |
enum | planner_node_type : int |
Functions | |
sframe | permute_sframe (sframe &values_sframe, std::shared_ptr< sarray< flexible_type > > forward_map) |
std::shared_ptr< sframe > | ec_sort (std::shared_ptr< planner_node > sframe_planner_node, const std::vector< std::string > column_names, const std::vector< size_t > &key_column_indices, const std::vector< bool > &sort_orders) |
std::shared_ptr< sframe > | groupby_aggregate (const std::shared_ptr< planner_node > &source, const std::vector< std::string > &source_column_names, const std::vector< std::string > &keys, const std::vector< std::string > &output_column_names, const std::vector< std::pair< std::vector< std::string >, std::shared_ptr< group_aggregate_value >>> &groups) |
std::shared_ptr< sframe > | sort (std::shared_ptr< planner_node > sframe_planner_node, const std::vector< std::string > column_names, const std::vector< size_t > &sort_column_indices, const std::vector< bool > &sort_orders) |
std::shared_ptr< sframe > | sort_and_merge (const std::shared_ptr< sarray< std::pair< flex_list, std::string >>> &partition_array, const std::vector< bool > &partition_sorted, const std::vector< size_t > &partition_sizes, const std::vector< bool > &sort_orders, const std::vector< size_t > &permute_order, const std::vector< std::string > &column_names, const std::vector< flex_type_enum > &column_types) |
std::vector< flex_type_enum > | infer_planner_node_type (std::shared_ptr< planner_node > pnode) |
int64_t | infer_planner_node_length (std::shared_ptr< planner_node > pnode) |
size_t | infer_planner_node_num_output_columns (std::shared_ptr< planner_node > pnode) |
size_t | infer_planner_node_num_dependency_nodes (std::shared_ptr< planner_node > pnode) |
std::shared_ptr< query_operator > | planner_node_to_operator (std::shared_ptr< planner_node > pnode) |
std::string | planner_node_type_to_name (planner_node_type type) |
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::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) |
bool | is_linear_transform (const query_operator_attributes &attr) |
bool | is_sublinear_transform (const query_operator_attributes &attr) |
bool | is_source_node (const query_operator_attributes &attr) |
bool | is_parallel_slicable (const std::shared_ptr< planner_node > &n) |
bool | is_linear_graph (const std::shared_ptr< planner_node > &n) |
std::vector< size_t > | get_parallel_slicable_codes (const std::shared_ptr< planner_node > &n) |
std::string | planner_node_repr (const std::shared_ptr< planner_node > &node) |
pnode_ptr | make_segmented_graph (pnode_ptr n, size_t split_idx, size_t n_splits, std::map< pnode_ptr, pnode_ptr > &memo) |
pnode_ptr | make_sliced_graph (pnode_ptr n, size_t begin_index, size_t end_index, std::map< pnode_ptr, pnode_ptr > &memo) |
std::vector< size_t > | get_stages_to_run (const materialize_options &exec_params) |
void | populate_transforms (optimization_transform_registry *otr) |
template<typename ResultType , typename ReduceFunctionType , typename AggregateFunctionType > | |
ResultType | reduce (std::shared_ptr< planner_node > input, ReduceFunctionType reduce_fn, AggregateFunctionType aggregate_fn, ResultType init=ResultType()) |
Variables | |
recursive_mutex | global_query_lock |
SFrame Lazy Evaluation and Execution
|
strong |
An enumeration of all operator types.
Definition at line 24 of file operator_properties.hpp.
bool turi::query_eval::consumes_inputs_at_same_rates | ( | const query_operator_attributes & | attr | ) |
This operator consumes all inputs at the same rate, and there is exactly one row for every input row.
std::vector<size_t> turi::query_eval::get_parallel_slicable_codes | ( | const std::shared_ptr< planner_node > & | n | ) |
Returns a set of integers giving the different parallel slicable units for the inputs of a particular node. If
std::vector<size_t> turi::query_eval::get_stages_to_run | ( | const materialize_options & | exec_params | ) |
Deterime which stages are run, given exec_params.
int64_t turi::query_eval::infer_planner_node_length | ( | std::shared_ptr< planner_node > | pnode | ) |
Infers the length of the output of a planner node by backtracking its dependencies.
Returns -1 if the length cannot be computed without an actual execution.
size_t turi::query_eval::infer_planner_node_num_dependency_nodes | ( | std::shared_ptr< planner_node > | pnode | ) |
Returns the number of nodes in this planning graph, including pnode.
size_t turi::query_eval::infer_planner_node_num_output_columns | ( | std::shared_ptr< planner_node > | pnode | ) |
Infers the number of columns present in the output.
std::vector<flex_type_enum> turi::query_eval::infer_planner_node_type | ( | std::shared_ptr< planner_node > | pnode | ) |
Infers the type schema of a planner node by backtracking its dependencies.
bool turi::query_eval::is_linear_graph | ( | const std::shared_ptr< planner_node > & | n | ) |
Returns true if the graph contains only linear transformations.
bool turi::query_eval::is_linear_transform | ( | const query_operator_attributes & | attr | ) |
A collection of flags used in actually doing the query optimization.
bool turi::query_eval::is_parallel_slicable | ( | const std::shared_ptr< planner_node > & | n | ) |
Returns true if the output of this node can be parallel sliceable by the sources on this block, and false otherwise.
bool turi::query_eval::is_source_node | ( | const query_operator_attributes & | attr | ) |
This operator is a source node.
bool turi::query_eval::is_sublinear_transform | ( | const query_operator_attributes & | attr | ) |
This operator consumes all inputs at the same rate, but reduces the rows in the output.
pnode_ptr turi::query_eval::make_segmented_graph | ( | pnode_ptr | n, |
size_t | split_idx, | ||
size_t | n_splits, | ||
std::map< pnode_ptr, pnode_ptr > & | memo | ||
) |
Turns a node graph into the proper segmented part.
pnode_ptr turi::query_eval::make_sliced_graph | ( | pnode_ptr | n, |
size_t | begin_index, | ||
size_t | end_index, | ||
std::map< pnode_ptr, pnode_ptr > & | memo | ||
) |
Slice the node graph input with begin and end.
Note:
planner_node_type turi::query_eval::planner_node_name_to_type | ( | const std::string & | name | ) |
Get the type of the node from the name.
std::string turi::query_eval::planner_node_repr | ( | const std::shared_ptr< planner_node > & | node | ) |
Representation of the node as a string.
std::shared_ptr<query_operator> turi::query_eval::planner_node_to_operator | ( | std::shared_ptr< planner_node > | pnode | ) |
Transforms a planner node into the operator.
query_operator_attributes turi::query_eval::planner_node_type_to_attributes | ( | planner_node_type | type | ) |
Get the attribute struct from the type.
std::string turi::query_eval::planner_node_type_to_name | ( | planner_node_type | type | ) |
Get the name of the node from the type.
void turi::query_eval::populate_transforms | ( | optimization_transform_registry * | otr | ) |
Populate the transform registry with all transforms.
std::pair<bool, bool> turi::query_eval::prove_equal_length | ( | const std::shared_ptr< planner_node > & | a, |
const std::shared_ptr< planner_node > & | b | ||
) |
Attempts to prove that the two inputs have equal length. Returns a pair [can_prove, is_equal_length]. If can_prove is false, we were unable to confirm that the two inputs have equal or non-equal length; the value of is_equal_length is then meaningless but it will be set to false.
If can_prove is true, and is_equal_length is true, we ensure that the two have equal length. If is_equal_length is false, we ensure that the two do not have equal length.