MySQL 8.4.0
Source Code Documentation
secondary_engine_costing_flags.h File Reference

For updating an AccessPath's costs by a secondary engine, i.e. More...

#include <cstdint>

Go to the source code of this file.

Typedefs

using SecondaryEngineCostingFlags = uint64_t
 

Enumerations

enum class  SecondaryEngineCostingFlag : SecondaryEngineCostingFlags {
  HAS_MULTIPLE_BASE_TABLES , CONTAINS_AGGREGATION_ACCESSPATH , CONTAINS_HAVING_ACCESSPATH , CONTAINS_WINDOW_ACCESSPATH ,
  CONTAINS_QUALIFY_ACCESSPATH , HANDLING_DISTINCT_ORDERBY_LIMITOFFSET
}
 

Functions

constexpr SecondaryEngineCostingFlags MakeSecondaryEngineCostingFlags ()
 Creates an empty bitmap of costing flags. More...
 
template<typename... Args>
constexpr SecondaryEngineCostingFlags MakeSecondaryEngineCostingFlags (const SecondaryEngineCostingFlag &flag1, const Args &... rest)
 Creates a bitmap representing a set of costing flags. More...
 
constexpr SecondaryEngineCostingFlags operator| (const SecondaryEngineCostingFlags &a, const SecondaryEngineCostingFlag &b)
 
constexpr SecondaryEngineCostingFlags operator| (const SecondaryEngineCostingFlag &a, const SecondaryEngineCostingFlags &b)
 
constexpr SecondaryEngineCostingFlagsoperator|= (SecondaryEngineCostingFlags &a, const SecondaryEngineCostingFlag &b)
 
constexpr SecondaryEngineCostingFlags operator& (const SecondaryEngineCostingFlags &a, const SecondaryEngineCostingFlag &b)
 
constexpr SecondaryEngineCostingFlags operator& (const SecondaryEngineCostingFlag &a, const SecondaryEngineCostingFlags &b)
 
constexpr SecondaryEngineCostingFlagsoperator&= (SecondaryEngineCostingFlags &a, const SecondaryEngineCostingFlag &b)
 
constexpr SecondaryEngineCostingFlags operator~ (const SecondaryEngineCostingFlag &flag)
 

Detailed Description

For updating an AccessPath's costs by a secondary engine, i.e.

costing a partial plan, the secondary engine may need to know ahead of time certain information about the current planning, for which we provide some flags here.

Typedef Documentation

◆ SecondaryEngineCostingFlags

using SecondaryEngineCostingFlags = uint64_t

Enumeration Type Documentation

◆ SecondaryEngineCostingFlag

Enumerator
HAS_MULTIPLE_BASE_TABLES 
CONTAINS_AGGREGATION_ACCESSPATH 
CONTAINS_HAVING_ACCESSPATH 
CONTAINS_WINDOW_ACCESSPATH 
CONTAINS_QUALIFY_ACCESSPATH 
HANDLING_DISTINCT_ORDERBY_LIMITOFFSET 

Function Documentation

◆ MakeSecondaryEngineCostingFlags() [1/2]

constexpr SecondaryEngineCostingFlags MakeSecondaryEngineCostingFlags ( )
inlineconstexpr

Creates an empty bitmap of costing flags.

This is the base case for the function template with the same name below.

◆ MakeSecondaryEngineCostingFlags() [2/2]

template<typename... Args>
constexpr SecondaryEngineCostingFlags MakeSecondaryEngineCostingFlags ( const SecondaryEngineCostingFlag flag1,
const Args &...  rest 
)
inlineconstexpr

Creates a bitmap representing a set of costing flags.

◆ operator&() [1/2]

constexpr SecondaryEngineCostingFlags operator& ( const SecondaryEngineCostingFlag a,
const SecondaryEngineCostingFlags b 
)
inlineconstexpr

◆ operator&() [2/2]

constexpr SecondaryEngineCostingFlags operator& ( const SecondaryEngineCostingFlags a,
const SecondaryEngineCostingFlag b 
)
inlineconstexpr

◆ operator&=()

constexpr SecondaryEngineCostingFlags & operator&= ( SecondaryEngineCostingFlags a,
const SecondaryEngineCostingFlag b 
)
inlineconstexpr

◆ operator|() [1/2]

constexpr SecondaryEngineCostingFlags operator| ( const SecondaryEngineCostingFlag a,
const SecondaryEngineCostingFlags b 
)
inlineconstexpr

◆ operator|() [2/2]

constexpr SecondaryEngineCostingFlags operator| ( const SecondaryEngineCostingFlags a,
const SecondaryEngineCostingFlag b 
)
inlineconstexpr

◆ operator|=()

constexpr SecondaryEngineCostingFlags & operator|= ( SecondaryEngineCostingFlags a,
const SecondaryEngineCostingFlag b 
)
inlineconstexpr

◆ operator~()

constexpr SecondaryEngineCostingFlags operator~ ( const SecondaryEngineCostingFlag flag)
inlineconstexpr