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.
Loading...
Searching...
No Matches
duckdb::LambdaExpression Class Reference

#include <duckdb.hpp>

Inheritance diagram for duckdb::LambdaExpression:
Collaboration diagram for duckdb::LambdaExpression:

Public Member Functions

 LambdaExpression (vector< string > named_parameters_p, unique_ptr< ParsedExpression > expr)
 
 LambdaExpression (unique_ptr< ParsedExpression > lhs, unique_ptr< ParsedExpression > expr)
 
vector< reference< const ParsedExpression > > ExtractColumnRefExpressions (string &error_message) const
 
string ToString () const override
 Convert the Expression to a String.
 
hash_t Hash () const override
 
unique_ptr< ParsedExpressionCopy () const override
 Create a copy of this expression.
 
void Serialize (Serializer &serializer) const override
 
- Public Member Functions inherited from duckdb::ParsedExpression
 ParsedExpression (ExpressionType type, ExpressionClass expression_class)
 Create an Expression.
 
bool IsAggregate () const override
 Returns true if this expression is an aggregate or not.
 
bool IsWindow () const override
 Returns true if the expression has a window function or not.
 
bool HasSubquery () const override
 Returns true if the query contains a subquery.
 
bool IsScalar () const override
 Returns true if expression does not contain a group ref or col ref or parameter.
 
bool HasParameter () const override
 Returns true if the expression has a parameter.
 
bool Equals (const BaseExpression &other) const override
 Returns true if this expression is equal to another expression.
 
hash_t Hash () const override
 
- Public Member Functions inherited from duckdb::BaseExpression
 BaseExpression (ExpressionType type, ExpressionClass expression_class)
 Create an Expression.
 
ExpressionClass GetExpressionClass () const
 Returns the class of the expression.
 
ExpressionType GetExpressionType () const
 Returns the type of the expression.
 
void SetExpressionTypeUnsafe (ExpressionType new_type)
 
optional_idx GetQueryLocation () const
 Returns the location in the query (if any)
 
void SetQueryLocation (optional_idx location)
 Sets the location in the query.
 
bool HasAlias () const
 Returns true if the expression has a non-empty alias.
 
const string & GetAlias () const
 Returns the alias of the expression.
 
void SetAlias (const string &alias_p)
 Sets the alias of the expression.
 
void SetAlias (string &&alias_p)
 Sets the alias of the expression.
 
void ClearAlias ()
 Clears the alias of the expression.
 
virtual string GetName () const
 Get the name of the expression.
 
void Print () const
 Print the expression to stdout.
 
bool operator== (const BaseExpression &rhs) const
 
virtual void Verify () const
 
template<class TARGET >
TARGETCast ()
 
template<class TARGET >
const TARGETCast () const
 

Static Public Member Functions

static string InvalidParametersErrorMessage ()
 Returns the error message for an invalid lambda parameter list.
 
static bool IsLambdaParameter (const vector< unordered_set< string > > &lambda_params, const string &column_name)
 Returns true, if the column_name is a lambda parameter name.
 
static bool Equal (const LambdaExpression &a, const LambdaExpression &b)
 
static unique_ptr< ParsedExpressionDeserialize (Deserializer &deserializer)
 
- Static Public Member Functions inherited from duckdb::ParsedExpression
static unique_ptr< ParsedExpressionDeserialize (Deserializer &deserializer)
 
static bool Equals (const unique_ptr< ParsedExpression > &left, const unique_ptr< ParsedExpression > &right)
 
static bool ListEquals (const vector< unique_ptr< ParsedExpression > > &left, const vector< unique_ptr< ParsedExpression > > &right)
 
- Static Public Member Functions inherited from duckdb::BaseExpression
static bool Equals (const BaseExpression &left, const BaseExpression &right)
 

Public Attributes

LambdaSyntaxType syntax_type
 The syntax type.
 
unique_ptr< ParsedExpressionlhs
 
unique_ptr< ParsedExpressionexpr
 The lambda or JSON expression (RHS)
 
unique_ptr< ParsedExpressioncopied_expr
 Band-aid for conflicts between lambda binding and JSON binding.
 
- Public Attributes inherited from duckdb::BaseExpression
ExpressionType type
 Type of the expression.
 
ExpressionClass expression_class
 The expression class of the node.
 
string alias
 The alias of the expression,.
 
optional_idx query_location
 The location in the query (if any)
 

Static Public Attributes

static constexpr const ExpressionClass TYPE = ExpressionClass::LAMBDA
 

Additional Inherited Members

- Protected Member Functions inherited from duckdb::ParsedExpression
void CopyProperties (const ParsedExpression &other)
 

Detailed Description

DuckDB 1.3. introduced a new lambda syntax: lambda x, y: x + y. The new syntax resolves any ambiguity with the JSON arrow operator. Currently, we're still using a LambdaExpression for both cases.

Member Function Documentation

◆ ExtractColumnRefExpressions()

vector< reference< const ParsedExpression > > duckdb::LambdaExpression::ExtractColumnRefExpressions ( string &  error_message) const

Returns a vector to the column references in the LHS expression, and fills the error message, if the LHS is not a valid lambda parameter list

◆ ToString()

string duckdb::LambdaExpression::ToString ( ) const
overridevirtual

Convert the Expression to a String.

Implements duckdb::BaseExpression.

◆ Hash()

hash_t duckdb::LambdaExpression::Hash ( ) const
overridevirtual

Creates a hash value of this expression. It is important that if two expressions are identical (i.e. Expression::Equals() returns true), that their hash value is identical as well.

Implements duckdb::BaseExpression.

◆ Copy()

unique_ptr< ParsedExpression > duckdb::LambdaExpression::Copy ( ) const
overridevirtual

Create a copy of this expression.

Implements duckdb::ParsedExpression.

◆ Serialize()

void duckdb::LambdaExpression::Serialize ( Serializer serializer) const
overridevirtual

Reimplemented from duckdb::ParsedExpression.

Member Data Documentation

◆ lhs

unique_ptr<ParsedExpression> duckdb::LambdaExpression::lhs

The LHS of a lambda expression or the JSON "->"-operator. We need the context to determine if the LHS is a list of column references (lambda parameters) or an expression (JSON)


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