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::LogicalOperator Class Referenceabstract

#include <duckdb.hpp>

Inheritance diagram for duckdb::LogicalOperator:
Collaboration diagram for duckdb::LogicalOperator:

Public Member Functions

 LogicalOperator (LogicalOperatorType type)
 
 LogicalOperator (LogicalOperatorType type, vector< unique_ptr< Expression > > expressions)
 
virtual vector< ColumnBindingGetColumnBindings ()
 
virtual idx_t GetRootIndex ()
 
void PrintColumnBindings ()
 
void ResolveOperatorTypes ()
 Resolve the types of the logical operator and its children.
 
virtual string GetName () const
 
virtual InsertionOrderPreservingMap< string > ParamsToString () const
 
virtual string ToString (ExplainFormat format=ExplainFormat::DEFAULT) const
 
DUCKDB_API void Print ()
 
virtual void Verify (ClientContext &context)
 Debug method: verify that the integrity of expressions & child nodes are maintained.
 
void AddChild (unique_ptr< LogicalOperator > child)
 
virtual idx_t EstimateCardinality (ClientContext &context)
 
void SetEstimatedCardinality (idx_t _estimated_cardinality)
 
void SetParamsEstimatedCardinality (InsertionOrderPreservingMap< string > &result) const
 
virtual void Serialize (Serializer &serializer) const
 
virtual unique_ptr< LogicalOperatorCopy (ClientContext &context) const
 
virtual bool RequireOptimizer () const
 
virtual bool SupportSerialization () const
 Allows LogicalOperators to opt out of serialization.
 
virtual bool HasProjectionMap () const
 
virtual vector< idx_tGetTableIndex () const
 Returns the set of table indexes of this operator.
 
template<class TARGET >
TARGETCast ()
 
template<class TARGET >
const TARGETCast () const
 

Static Public Member Functions

static string ColumnBindingsToString (const vector< ColumnBinding > &bindings)
 
static vector< ColumnBindingGenerateColumnBindings (idx_t table_idx, idx_t column_count)
 
static vector< LogicalTypeMapTypes (const vector< LogicalType > &types, const vector< idx_t > &projection_map)
 
static vector< ColumnBindingMapBindings (const vector< ColumnBinding > &types, const vector< idx_t > &projection_map)
 
static unique_ptr< LogicalOperatorDeserialize (Deserializer &deserializer)
 

Public Attributes

LogicalOperatorType type
 The type of the logical operator.
 
vector< unique_ptr< LogicalOperator > > children
 The set of children of the operator.
 
vector< unique_ptr< Expression > > expressions
 The set of expressions contained within the operator, if any.
 
vector< LogicalTypetypes
 The types returned by this logical operator. Set by calling LogicalOperator::ResolveTypes.
 
idx_t estimated_cardinality
 Estimated Cardinality.
 
bool has_estimated_cardinality
 

Protected Member Functions

virtual void ResolveTypes ()=0
 Resolve types for this specific operator.
 

Detailed Description

LogicalOperator is the base class of the logical operators present in the logical query tree

Member Function Documentation

◆ RequireOptimizer()

virtual bool duckdb::LogicalOperator::RequireOptimizer ( ) const
inlinevirtual
21300 {
21301 return true;
21302 }

◆ SupportSerialization()

virtual bool duckdb::LogicalOperator::SupportSerialization ( ) const
inlinevirtual

Allows LogicalOperators to opt out of serialization.

Reimplemented in duckdb::LogicalGet.

21305 {
21306 return true;
21307 };

◆ HasProjectionMap()

virtual bool duckdb::LogicalOperator::HasProjectionMap ( ) const
inlinevirtual
21309 {
21310 return false;
21311 }

◆ GetTableIndex()

virtual vector< idx_t > duckdb::LogicalOperator::GetTableIndex ( ) const
virtual

Returns the set of table indexes of this operator.

Reimplemented in duckdb::LogicalGet, and duckdb::LogicalProjection.

◆ ResolveTypes()

virtual void duckdb::LogicalOperator::ResolveTypes ( )
protectedpure virtual

Resolve types for this specific operator.

Implemented in duckdb::LogicalGet, duckdb::LogicalProjection, and duckdb::LogicalUpdate.

◆ Cast() [1/2]

template<class TARGET >
TARGET & duckdb::LogicalOperator::Cast ( )
inline
21322 {
21323 if (TARGET::TYPE != LogicalOperatorType::LOGICAL_INVALID && type != TARGET::TYPE) {
21324 throw InternalException("Failed to cast logical operator to type - logical operator type mismatch");
21325 }
21326 return reinterpret_cast<TARGET &>(*this);
21327 }
LogicalOperatorType type
The type of the logical operator.
Definition duckdb.hpp:21260

◆ Cast() [2/2]

template<class TARGET >
const TARGET & duckdb::LogicalOperator::Cast ( ) const
inline
21330 {
21331 if (TARGET::TYPE != LogicalOperatorType::LOGICAL_INVALID && type != TARGET::TYPE) {
21332 throw InternalException("Failed to cast logical operator to type - logical operator type mismatch");
21333 }
21334 return reinterpret_cast<const TARGET &>(*this);
21335 }

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