![]() |
Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
|

Classes | |
| struct | ExpressionValueInformation |
Public Member Functions | |
| FilterCombiner (ClientContext &context) | |
| FilterCombiner (Optimizer &optimizer) | |
| FilterResult | AddFilter (unique_ptr< Expression > expr) |
| void | GenerateFilters (const std::function< void(unique_ptr< Expression > filter)> &callback) |
| bool | HasFilters () |
| TableFilterSet | GenerateTableScanFilters (const vector< ColumnIndex > &column_ids, vector< FilterPushdownResult > &pushdown_results) |
| FilterPushdownResult | TryPushdownGenericExpression (LogicalGet &get, Expression &expr) |
Static Public Member Functions | |
| static bool | IsDenseRange (vector< Value > &in_list) |
| static bool | ContainsNull (vector< Value > &in_list) |
| static bool | FindNextLegalUTF8 (string &prefix_string) |
Public Attributes | |
| ClientContext & | context |
Private Member Functions | |
| FilterResult | AddFilter (Expression &expr) |
| FilterResult | AddBoundComparisonFilter (Expression &expr) |
| FilterResult | AddTransitiveFilters (BoundComparisonExpression &comparison, bool is_root=true) |
| unique_ptr< Expression > | FindTransitiveFilter (Expression &expr) |
| Expression & | GetNode (Expression &expr) |
| idx_t | GetEquivalenceSet (Expression &expr) |
| FilterResult | AddConstantComparison (vector< ExpressionValueInformation > &info_list, ExpressionValueInformation info) |
| FilterPushdownResult | TryPushdownConstantFilter (TableFilterSet &table_filters, const vector< ColumnIndex > &column_ids, column_t column_id, vector< ExpressionValueInformation > &info_list) |
| FilterPushdownResult | TryPushdownExpression (TableFilterSet &table_filters, const vector< ColumnIndex > &column_ids, Expression &expr) |
| FilterPushdownResult | TryPushdownPrefixFilter (TableFilterSet &table_filters, const vector< ColumnIndex > &column_ids, Expression &expr) |
| FilterPushdownResult | TryPushdownLikeFilter (TableFilterSet &table_filters, const vector< ColumnIndex > &column_ids, Expression &expr) |
| FilterPushdownResult | TryPushdownInFilter (TableFilterSet &table_filters, const vector< ColumnIndex > &column_ids, Expression &expr) |
| FilterPushdownResult | TryPushdownOrClause (TableFilterSet &table_filters, const vector< ColumnIndex > &column_ids, Expression &expr) |
Private Attributes | |
| vector< unique_ptr< Expression > > | remaining_filters |
| expression_map_t< unique_ptr< Expression > > | stored_expressions |
| expression_map_t< idx_t > | equivalence_set_map |
| map< idx_t, vector< ExpressionValueInformation > > | constant_values |
| map< idx_t, vector< reference< Expression > > > | equivalence_map |
| idx_t | set_index = 0 |
The FilterCombiner combines several filters and generates a logically equivalent set that is more efficient Amongst others: (1) it prunes obsolete filter conditions: i.e. [X > 5 and X > 7] => [X > 7] (2) it generates new filters for expressions in the same equivalence set: i.e. [X = Y and X = 500] => [Y = 500] (3) it prunes branches that have unsatisfiable filters: i.e. [X = 5 AND X > 6] => FALSE, prune branch
Returns whether or not a set of integral values is a dense range (i.e. 1, 2, 3, 4, 5) If this returns true - this sorts "in_list" as a side-effect