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::MetricsUtils Class Reference

Static Public Member Functions

static profiler_settings_t GetAllMetrics ()
 
static profiler_settings_t GetMetricsByGroupType (MetricGroup type)
 
static profiler_settings_t GetCoreMetrics ()
 
static bool IsCoreMetric (MetricType type)
 
static profiler_settings_t GetDefaultMetrics ()
 
static bool IsDefaultMetric (MetricType type)
 
static profiler_settings_t GetExecutionMetrics ()
 
static bool IsExecutionMetric (MetricType type)
 
static profiler_settings_t GetFileMetrics ()
 
static bool IsFileMetric (MetricType type)
 
static profiler_settings_t GetOperatorMetrics ()
 
static bool IsOperatorMetric (MetricType type)
 
static profiler_settings_t GetOptimizerMetrics ()
 
static bool IsOptimizerMetric (MetricType type)
 
static MetricType GetOptimizerMetricByType (OptimizerType type)
 
static OptimizerType GetOptimizerTypeByMetric (MetricType type)
 
static profiler_settings_t GetPhaseTimingMetrics ()
 
static bool IsPhaseTimingMetric (MetricType type)
 
static profiler_settings_t GetRootScopeMetrics ()
 
static bool IsRootScopeMetric (MetricType type)
 

Static Public Attributes

static constexpr uint8_t START_OPTIMIZER = static_cast<uint8_t>(MetricType::OPTIMIZER_EXPRESSION_REWRITER)
 
static constexpr uint8_t END_OPTIMIZER = static_cast<uint8_t>(MetricType::OPTIMIZER_WINDOW_SELF_JOIN)
 

Member Function Documentation

◆ GetAllMetrics()

profiler_settings_t duckdb::MetricsUtils::GetAllMetrics ( )
static
68614 {
68615 return {
68616 MetricType::ALL_OPTIMIZERS,
68617 MetricType::ATTACH_LOAD_STORAGE_LATENCY,
68618 MetricType::ATTACH_REPLAY_WAL_LATENCY,
68619 MetricType::BLOCKED_THREAD_TIME,
68620 MetricType::CHECKPOINT_LATENCY,
68621 MetricType::COMMIT_LOCAL_STORAGE_LATENCY,
68622 MetricType::CPU_TIME,
68623 MetricType::CUMULATIVE_CARDINALITY,
68624 MetricType::CUMULATIVE_OPTIMIZER_TIMING,
68625 MetricType::CUMULATIVE_ROWS_SCANNED,
68626 MetricType::EXTRA_INFO,
68627 MetricType::LATENCY,
68628 MetricType::OPERATOR_CARDINALITY,
68629 MetricType::OPERATOR_NAME,
68630 MetricType::OPERATOR_ROWS_SCANNED,
68631 MetricType::OPERATOR_TIMING,
68632 MetricType::OPERATOR_TYPE,
68633 MetricType::OPTIMIZER_BUILD_SIDE_PROBE_SIDE,
68634 MetricType::OPTIMIZER_COLUMN_LIFETIME,
68635 MetricType::OPTIMIZER_COMMON_AGGREGATE,
68636 MetricType::OPTIMIZER_COMMON_SUBEXPRESSIONS,
68637 MetricType::OPTIMIZER_COMMON_SUBPLAN,
68638 MetricType::OPTIMIZER_COMPRESSED_MATERIALIZATION,
68639 MetricType::OPTIMIZER_CTE_FILTER_PUSHER,
68640 MetricType::OPTIMIZER_CTE_INLINING,
68641 MetricType::OPTIMIZER_DELIMINATOR,
68642 MetricType::OPTIMIZER_DUPLICATE_GROUPS,
68643 MetricType::OPTIMIZER_EMPTY_RESULT_PULLUP,
68644 MetricType::OPTIMIZER_EXPRESSION_REWRITER,
68645 MetricType::OPTIMIZER_EXTENSION,
68646 MetricType::OPTIMIZER_FILTER_PULLUP,
68647 MetricType::OPTIMIZER_FILTER_PUSHDOWN,
68648 MetricType::OPTIMIZER_IN_CLAUSE,
68649 MetricType::OPTIMIZER_JOIN_ELIMINATION,
68650 MetricType::OPTIMIZER_JOIN_FILTER_PUSHDOWN,
68651 MetricType::OPTIMIZER_JOIN_ORDER,
68652 MetricType::OPTIMIZER_LATE_MATERIALIZATION,
68653 MetricType::OPTIMIZER_LIMIT_PUSHDOWN,
68654 MetricType::OPTIMIZER_MATERIALIZED_CTE,
68655 MetricType::OPTIMIZER_REGEX_RANGE,
68656 MetricType::OPTIMIZER_REORDER_FILTER,
68657 MetricType::OPTIMIZER_ROW_GROUP_PRUNER,
68658 MetricType::OPTIMIZER_SAMPLING_PUSHDOWN,
68659 MetricType::OPTIMIZER_STATISTICS_PROPAGATION,
68660 MetricType::OPTIMIZER_SUM_REWRITER,
68661 MetricType::OPTIMIZER_TOP_N,
68662 MetricType::OPTIMIZER_TOP_N_WINDOW_ELIMINATION,
68663 MetricType::OPTIMIZER_UNNEST_REWRITER,
68664 MetricType::OPTIMIZER_UNUSED_COLUMNS,
68665 MetricType::OPTIMIZER_WINDOW_SELF_JOIN,
68666 MetricType::PHYSICAL_PLANNER,
68667 MetricType::PHYSICAL_PLANNER_COLUMN_BINDING,
68668 MetricType::PHYSICAL_PLANNER_CREATE_PLAN,
68669 MetricType::PHYSICAL_PLANNER_RESOLVE_TYPES,
68670 MetricType::PLANNER,
68671 MetricType::PLANNER_BINDING,
68672 MetricType::QUERY_NAME,
68673 MetricType::RESULT_SET_SIZE,
68674 MetricType::ROWS_RETURNED,
68675 MetricType::SYSTEM_PEAK_BUFFER_MEMORY,
68676 MetricType::SYSTEM_PEAK_TEMP_DIR_SIZE,
68677 MetricType::TOTAL_BYTES_READ,
68678 MetricType::TOTAL_BYTES_WRITTEN,
68679 MetricType::TOTAL_MEMORY_ALLOCATED,
68680 MetricType::WAITING_TO_ATTACH_LATENCY,
68681 MetricType::WAL_REPLAY_ENTRY_COUNT,
68682 MetricType::WRITE_TO_WAL_LATENCY,
68683 };
68684}

◆ GetMetricsByGroupType()

profiler_settings_t duckdb::MetricsUtils::GetMetricsByGroupType ( MetricGroup  type)
static
68686 {
68687 switch(type) {
68688 case MetricGroup::ALL:
68689 return GetAllMetrics();
68690 case MetricGroup::CORE:
68691 return GetCoreMetrics();
68692 case MetricGroup::DEFAULT:
68693 return GetDefaultMetrics();
68694 case MetricGroup::EXECUTION:
68695 return GetExecutionMetrics();
68696 case MetricGroup::FILE:
68697 return GetFileMetrics();
68698 case MetricGroup::OPERATOR:
68699 return GetOperatorMetrics();
68700 case MetricGroup::OPTIMIZER:
68701 return GetOptimizerMetrics();
68702 case MetricGroup::PHASE_TIMING:
68703 return GetPhaseTimingMetrics();
68704 default:
68705 throw InternalException("The MetricGroup passed is invalid");
68706 }
68707}

◆ GetCoreMetrics()

profiler_settings_t duckdb::MetricsUtils::GetCoreMetrics ( )
static
68709 {
68710 return {
68711 MetricType::CPU_TIME,
68712 MetricType::CUMULATIVE_CARDINALITY,
68713 MetricType::CUMULATIVE_ROWS_SCANNED,
68714 MetricType::EXTRA_INFO,
68715 MetricType::LATENCY,
68716 MetricType::QUERY_NAME,
68717 MetricType::RESULT_SET_SIZE,
68718 MetricType::ROWS_RETURNED,
68719 };
68720}

◆ IsCoreMetric()

bool duckdb::MetricsUtils::IsCoreMetric ( MetricType  type)
static
68722 {
68723 switch(type) {
68724 case MetricType::CPU_TIME:
68725 case MetricType::CUMULATIVE_CARDINALITY:
68726 case MetricType::CUMULATIVE_ROWS_SCANNED:
68727 case MetricType::EXTRA_INFO:
68728 case MetricType::LATENCY:
68729 case MetricType::QUERY_NAME:
68730 case MetricType::RESULT_SET_SIZE:
68731 case MetricType::ROWS_RETURNED:
68732 return true;
68733 default:
68734 return false;
68735 }
68736}

◆ GetDefaultMetrics()

profiler_settings_t duckdb::MetricsUtils::GetDefaultMetrics ( )
static
68738 {
68739 return {
68740 MetricType::ATTACH_LOAD_STORAGE_LATENCY,
68741 MetricType::ATTACH_REPLAY_WAL_LATENCY,
68742 MetricType::BLOCKED_THREAD_TIME,
68743 MetricType::CHECKPOINT_LATENCY,
68744 MetricType::COMMIT_LOCAL_STORAGE_LATENCY,
68745 MetricType::CPU_TIME,
68746 MetricType::CUMULATIVE_CARDINALITY,
68747 MetricType::CUMULATIVE_ROWS_SCANNED,
68748 MetricType::EXTRA_INFO,
68749 MetricType::LATENCY,
68750 MetricType::OPERATOR_CARDINALITY,
68751 MetricType::OPERATOR_NAME,
68752 MetricType::OPERATOR_ROWS_SCANNED,
68753 MetricType::OPERATOR_TIMING,
68754 MetricType::OPERATOR_TYPE,
68755 MetricType::QUERY_NAME,
68756 MetricType::RESULT_SET_SIZE,
68757 MetricType::ROWS_RETURNED,
68758 MetricType::SYSTEM_PEAK_BUFFER_MEMORY,
68759 MetricType::SYSTEM_PEAK_TEMP_DIR_SIZE,
68760 MetricType::TOTAL_BYTES_READ,
68761 MetricType::TOTAL_BYTES_WRITTEN,
68762 MetricType::TOTAL_MEMORY_ALLOCATED,
68763 MetricType::WAITING_TO_ATTACH_LATENCY,
68764 MetricType::WAL_REPLAY_ENTRY_COUNT,
68765 MetricType::WRITE_TO_WAL_LATENCY,
68766 };
68767}

◆ IsDefaultMetric()

bool duckdb::MetricsUtils::IsDefaultMetric ( MetricType  type)
static
68769 {
68770 switch(type) {
68771 case MetricType::ATTACH_LOAD_STORAGE_LATENCY:
68772 case MetricType::ATTACH_REPLAY_WAL_LATENCY:
68773 case MetricType::BLOCKED_THREAD_TIME:
68774 case MetricType::CHECKPOINT_LATENCY:
68775 case MetricType::COMMIT_LOCAL_STORAGE_LATENCY:
68776 case MetricType::CPU_TIME:
68777 case MetricType::CUMULATIVE_CARDINALITY:
68778 case MetricType::CUMULATIVE_ROWS_SCANNED:
68779 case MetricType::EXTRA_INFO:
68780 case MetricType::LATENCY:
68781 case MetricType::OPERATOR_CARDINALITY:
68782 case MetricType::OPERATOR_NAME:
68783 case MetricType::OPERATOR_ROWS_SCANNED:
68784 case MetricType::OPERATOR_TIMING:
68785 case MetricType::OPERATOR_TYPE:
68786 case MetricType::QUERY_NAME:
68787 case MetricType::RESULT_SET_SIZE:
68788 case MetricType::ROWS_RETURNED:
68789 case MetricType::SYSTEM_PEAK_BUFFER_MEMORY:
68790 case MetricType::SYSTEM_PEAK_TEMP_DIR_SIZE:
68791 case MetricType::TOTAL_BYTES_READ:
68792 case MetricType::TOTAL_BYTES_WRITTEN:
68793 case MetricType::TOTAL_MEMORY_ALLOCATED:
68794 case MetricType::WAITING_TO_ATTACH_LATENCY:
68795 case MetricType::WAL_REPLAY_ENTRY_COUNT:
68796 case MetricType::WRITE_TO_WAL_LATENCY:
68797 return true;
68798 default:
68799 return false;
68800 }
68801}

◆ GetExecutionMetrics()

profiler_settings_t duckdb::MetricsUtils::GetExecutionMetrics ( )
static
68803 {
68804 return {
68805 MetricType::BLOCKED_THREAD_TIME,
68806 MetricType::SYSTEM_PEAK_BUFFER_MEMORY,
68807 MetricType::SYSTEM_PEAK_TEMP_DIR_SIZE,
68808 MetricType::TOTAL_MEMORY_ALLOCATED,
68809 };
68810}

◆ IsExecutionMetric()

bool duckdb::MetricsUtils::IsExecutionMetric ( MetricType  type)
static
68812 {
68813 switch(type) {
68814 case MetricType::BLOCKED_THREAD_TIME:
68815 case MetricType::SYSTEM_PEAK_BUFFER_MEMORY:
68816 case MetricType::SYSTEM_PEAK_TEMP_DIR_SIZE:
68817 case MetricType::TOTAL_MEMORY_ALLOCATED:
68818 return true;
68819 default:
68820 return false;
68821 }
68822}

◆ GetFileMetrics()

profiler_settings_t duckdb::MetricsUtils::GetFileMetrics ( )
static
68824 {
68825 return {
68826 MetricType::ATTACH_LOAD_STORAGE_LATENCY,
68827 MetricType::ATTACH_REPLAY_WAL_LATENCY,
68828 MetricType::CHECKPOINT_LATENCY,
68829 MetricType::COMMIT_LOCAL_STORAGE_LATENCY,
68830 MetricType::TOTAL_BYTES_READ,
68831 MetricType::TOTAL_BYTES_WRITTEN,
68832 MetricType::WAITING_TO_ATTACH_LATENCY,
68833 MetricType::WAL_REPLAY_ENTRY_COUNT,
68834 MetricType::WRITE_TO_WAL_LATENCY,
68835 };
68836}

◆ IsFileMetric()

bool duckdb::MetricsUtils::IsFileMetric ( MetricType  type)
static
68838 {
68839 switch(type) {
68840 case MetricType::ATTACH_LOAD_STORAGE_LATENCY:
68841 case MetricType::ATTACH_REPLAY_WAL_LATENCY:
68842 case MetricType::CHECKPOINT_LATENCY:
68843 case MetricType::COMMIT_LOCAL_STORAGE_LATENCY:
68844 case MetricType::TOTAL_BYTES_READ:
68845 case MetricType::TOTAL_BYTES_WRITTEN:
68846 case MetricType::WAITING_TO_ATTACH_LATENCY:
68847 case MetricType::WAL_REPLAY_ENTRY_COUNT:
68848 case MetricType::WRITE_TO_WAL_LATENCY:
68849 return true;
68850 default:
68851 return false;
68852 }
68853}

◆ GetOperatorMetrics()

profiler_settings_t duckdb::MetricsUtils::GetOperatorMetrics ( )
static
68855 {
68856 return {
68857 MetricType::OPERATOR_CARDINALITY,
68858 MetricType::OPERATOR_NAME,
68859 MetricType::OPERATOR_ROWS_SCANNED,
68860 MetricType::OPERATOR_TIMING,
68861 MetricType::OPERATOR_TYPE,
68862 };
68863}

◆ IsOperatorMetric()

bool duckdb::MetricsUtils::IsOperatorMetric ( MetricType  type)
static
68865 {
68866 switch(type) {
68867 case MetricType::OPERATOR_CARDINALITY:
68868 case MetricType::OPERATOR_NAME:
68869 case MetricType::OPERATOR_ROWS_SCANNED:
68870 case MetricType::OPERATOR_TIMING:
68871 case MetricType::OPERATOR_TYPE:
68872 return true;
68873 default:
68874 return false;
68875 }
68876}

◆ GetOptimizerMetrics()

profiler_settings_t duckdb::MetricsUtils::GetOptimizerMetrics ( )
static
68878 {
68879 profiler_settings_t result;
68880 for (auto metric = START_OPTIMIZER; metric <= END_OPTIMIZER; metric++) {
68881 result.insert(static_cast<MetricType>(metric));
68882 }
68883 return result;
68884}

◆ IsOptimizerMetric()

bool duckdb::MetricsUtils::IsOptimizerMetric ( MetricType  type)
static
68886 {
68887 return static_cast<uint8_t>(type) >= START_OPTIMIZER && static_cast<uint8_t>(type) <= END_OPTIMIZER;
68888}
::uint8_t uint8_t

◆ GetOptimizerMetricByType()

MetricType duckdb::MetricsUtils::GetOptimizerMetricByType ( OptimizerType  type)
static
68891 {
68892 if (type == OptimizerType::INVALID) {
68893 throw InternalException("Invalid OptimizerType: INVALID");
68894 }
68895
68896 const auto base_opt = static_cast<uint8_t>(OptimizerType::EXPRESSION_REWRITER);
68897 const auto idx = static_cast<uint8_t>(type) - base_opt;
68898
68899 const auto metric_u8 = static_cast<uint8_t>(START_OPTIMIZER + idx);
68900 if (metric_u8 < START_OPTIMIZER || metric_u8 > END_OPTIMIZER) {
68901 throw InternalException("OptimizerType out of MetricType optimizer range");
68902 }
68903 return static_cast<MetricType>(metric_u8);
68904}

◆ GetOptimizerTypeByMetric()

OptimizerType duckdb::MetricsUtils::GetOptimizerTypeByMetric ( MetricType  type)
static
68906 {
68907 const auto metric_u8 = static_cast<uint8_t>(type);
68908 if (!IsOptimizerMetric(type)) {
68909 throw InternalException("MetricType is not an optimizer metric");
68910 }
68911
68912 const auto idx = static_cast<uint8_t>(metric_u8 - START_OPTIMIZER);
68913 const auto result = static_cast<uint8_t>(OptimizerType::EXPRESSION_REWRITER) + idx;
68914 return static_cast<OptimizerType>(result);
68915}

◆ GetPhaseTimingMetrics()

profiler_settings_t duckdb::MetricsUtils::GetPhaseTimingMetrics ( )
static
68917 {
68918 return {
68919 MetricType::ALL_OPTIMIZERS,
68920 MetricType::CUMULATIVE_OPTIMIZER_TIMING,
68921 MetricType::PHYSICAL_PLANNER,
68922 MetricType::PHYSICAL_PLANNER_COLUMN_BINDING,
68923 MetricType::PHYSICAL_PLANNER_CREATE_PLAN,
68924 MetricType::PHYSICAL_PLANNER_RESOLVE_TYPES,
68925 MetricType::PLANNER,
68926 MetricType::PLANNER_BINDING,
68927 };
68928}

◆ IsPhaseTimingMetric()

bool duckdb::MetricsUtils::IsPhaseTimingMetric ( MetricType  type)
static
68930 {
68931 switch(type) {
68932 case MetricType::ALL_OPTIMIZERS:
68933 case MetricType::CUMULATIVE_OPTIMIZER_TIMING:
68934 case MetricType::PHYSICAL_PLANNER:
68935 case MetricType::PHYSICAL_PLANNER_COLUMN_BINDING:
68936 case MetricType::PHYSICAL_PLANNER_CREATE_PLAN:
68937 case MetricType::PHYSICAL_PLANNER_RESOLVE_TYPES:
68938 case MetricType::PLANNER:
68939 case MetricType::PLANNER_BINDING:
68940 return true;
68941 default:
68942 return false;
68943 }
68944}

◆ GetRootScopeMetrics()

profiler_settings_t duckdb::MetricsUtils::GetRootScopeMetrics ( )
static
68946 {
68947 return {
68948 MetricType::ATTACH_LOAD_STORAGE_LATENCY,
68949 MetricType::ATTACH_REPLAY_WAL_LATENCY,
68950 MetricType::BLOCKED_THREAD_TIME,
68951 MetricType::CHECKPOINT_LATENCY,
68952 MetricType::COMMIT_LOCAL_STORAGE_LATENCY,
68953 MetricType::LATENCY,
68954 MetricType::QUERY_NAME,
68955 MetricType::ROWS_RETURNED,
68956 MetricType::TOTAL_BYTES_READ,
68957 MetricType::TOTAL_BYTES_WRITTEN,
68958 MetricType::TOTAL_MEMORY_ALLOCATED,
68959 MetricType::WAITING_TO_ATTACH_LATENCY,
68960 MetricType::WAL_REPLAY_ENTRY_COUNT,
68961 MetricType::WRITE_TO_WAL_LATENCY,
68962 };
68963}

◆ IsRootScopeMetric()

bool duckdb::MetricsUtils::IsRootScopeMetric ( MetricType  type)
static
68965 {
68966 switch(type) {
68967 case MetricType::ATTACH_LOAD_STORAGE_LATENCY:
68968 case MetricType::ATTACH_REPLAY_WAL_LATENCY:
68969 case MetricType::BLOCKED_THREAD_TIME:
68970 case MetricType::CHECKPOINT_LATENCY:
68971 case MetricType::COMMIT_LOCAL_STORAGE_LATENCY:
68972 case MetricType::LATENCY:
68973 case MetricType::QUERY_NAME:
68974 case MetricType::ROWS_RETURNED:
68975 case MetricType::TOTAL_BYTES_READ:
68976 case MetricType::TOTAL_BYTES_WRITTEN:
68977 case MetricType::TOTAL_MEMORY_ALLOCATED:
68978 case MetricType::WAITING_TO_ATTACH_LATENCY:
68979 case MetricType::WAL_REPLAY_ENTRY_COUNT:
68980 case MetricType::WRITE_TO_WAL_LATENCY:
68981 return true;
68982 default:
68983 return false;
68984 }
68985}

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