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::ArrowExtensionMetadata Struct Reference
Collaboration diagram for duckdb::ArrowExtensionMetadata:

Public Member Functions

 ArrowExtensionMetadata (string extension_name, string vendor_name, string type_name, string arrow_format)
 
hash_t GetHash () const
 
string ToString () const
 
string GetExtensionName () const
 
string GetVendorName () const
 
string GetTypeName () const
 
string GetArrowFormat () const
 
void SetArrowFormat (string arrow_format)
 
bool IsCanonical () const
 
bool operator== (const ArrowExtensionMetadata &other) const
 

Static Public Attributes

static constexpr const charARROW_EXTENSION_NON_CANONICAL = "arrow.opaque"
 Arrow Extension for non-canonical types.
 

Private Attributes

string extension_name {}
 The extension name (e.g., 'arrow.uuid', 'arrow.opaque',...)
 
string vendor_name {}
 
string type_name {}
 The type_name is the name of the type produced by the vendor (e.g., hugeint)
 
string arrow_format {}
 The arrow format (e.g., z)
 

Constructor & Destructor Documentation

◆ ArrowExtensionMetadata() [1/2]

duckdb::ArrowExtensionMetadata::ArrowExtensionMetadata ( )
inline
37771 {
37772 }

◆ ArrowExtensionMetadata() [2/2]

duckdb::ArrowExtensionMetadata::ArrowExtensionMetadata ( string  extension_name,
string  vendor_name,
string  type_name,
string  arrow_format 
)
44993 : extension_name(std::move(extension_name)), vendor_name(std::move(vendor_name)), type_name(std::move(type_name)),
44994 arrow_format(std::move(arrow_format)) {
44995}
string arrow_format
The arrow format (e.g., z)
Definition duckdb.hpp:37806
string extension_name
The extension name (e.g., 'arrow.uuid', 'arrow.opaque',...)
Definition duckdb.hpp:37799
string type_name
The type_name is the name of the type produced by the vendor (e.g., hugeint)
Definition duckdb.hpp:37804
string vendor_name
Definition duckdb.hpp:37802

Member Function Documentation

◆ GetHash()

hash_t duckdb::ArrowExtensionMetadata::GetHash ( ) const
44997 {
44998 const auto h_extension = Hash(extension_name.c_str());
44999 const auto h_vendor = Hash(vendor_name.c_str());
45000 const auto h_type = Hash(type_name.c_str());
45001 // Most arrow extensions are unique on the extension name
45002 // However we use arrow.opaque as all the non-canonical extensions, hence we do a hash-aroo of all.
45003 return CombineHash(h_extension, CombineHash(h_vendor, h_type));
45004}
hash_t CombineHash(hash_t left, hash_t right)
Combine two hashes by XORing them.
Definition duckdb.hpp:4635

◆ ToString()

string duckdb::ArrowExtensionMetadata::ToString ( ) const
45025 {
45026 std::ostringstream info;
45027 info << "Extension Name: " << extension_name << "\n";
45028 if (!vendor_name.empty()) {
45029 info << "Vendor: " << vendor_name << "\n";
45030 }
45031 if (!type_name.empty()) {
45032 info << "Type: " << type_name << "\n";
45033 }
45034 if (!arrow_format.empty()) {
45035 info << "Format: " << arrow_format << "\n";
45036 }
45037 return info.str();
45038}

◆ GetExtensionName()

string duckdb::ArrowExtensionMetadata::GetExtensionName ( ) const
45040 {
45041 return extension_name;
45042}

◆ GetVendorName()

string duckdb::ArrowExtensionMetadata::GetVendorName ( ) const
45044 {
45045 return vendor_name;
45046}

◆ GetTypeName()

string duckdb::ArrowExtensionMetadata::GetTypeName ( ) const
45048 {
45049 return type_name;
45050}

◆ GetArrowFormat()

string duckdb::ArrowExtensionMetadata::GetArrowFormat ( ) const
45052 {
45053 return arrow_format;
45054}

◆ SetArrowFormat()

void duckdb::ArrowExtensionMetadata::SetArrowFormat ( string  arrow_format)
45056 {
45057 arrow_format = std::move(arrow_format_p);
45058}

◆ IsCanonical()

bool duckdb::ArrowExtensionMetadata::IsCanonical ( ) const
45060 {
45061 D_ASSERT((!vendor_name.empty() && !type_name.empty()) || (vendor_name.empty() && type_name.empty()));
45062 return vendor_name.empty();
45063}

◆ operator==()

bool duckdb::ArrowExtensionMetadata::operator== ( const ArrowExtensionMetadata other) const
45065 {
45066 return extension_name == other.extension_name && type_name == other.type_name && vendor_name == other.vendor_name;
45067}

Member Data Documentation

◆ extension_name

string duckdb::ArrowExtensionMetadata::extension_name {}
private

The extension name (e.g., 'arrow.uuid', 'arrow.opaque',...)

37799{};

◆ vendor_name

string duckdb::ArrowExtensionMetadata::vendor_name {}
private

If the extension name is 'arrow.opaque' a vendor and type must be defined. The vendor_name is the system that produced the type (e.g., DuckDB)

37802{};

◆ type_name

string duckdb::ArrowExtensionMetadata::type_name {}
private

The type_name is the name of the type produced by the vendor (e.g., hugeint)

37804{};

◆ arrow_format

string duckdb::ArrowExtensionMetadata::arrow_format {}
private

The arrow format (e.g., z)

37806{};

The documentation for this struct was generated from the following files: