1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

MCOL-5493: First portion of UBSan fixes (#2842)

Multiple UB fixes
This commit is contained in:
Leonid Fedorov
2023-06-02 17:02:09 +03:00
committed by GitHub
parent 0a2e9760ee
commit 8f93fc3623
31 changed files with 274 additions and 916 deletions

View File

@ -801,7 +801,7 @@ class CalpontSelectExecutionPlan : public CalpontExecutionPlan
/**
* If set, then the local PM only option is turned on
*/
uint32_t fLocalQuery;
uint32_t fLocalQuery = GLOBAL_QUERY;
/**
* A list of ReturnedColumn objects
@ -822,7 +822,7 @@ class CalpontSelectExecutionPlan : public CalpontExecutionPlan
/**
* A tree of Filter objects
*/
ParseTree* fFilters;
ParseTree* fFilters = nullptr;
/**
* A list of CalpontExecutionPlan objects
*/
@ -846,11 +846,11 @@ class CalpontSelectExecutionPlan : public CalpontExecutionPlan
/**
* An enum indicating the location of this select statement in the enclosing select statement
*/
int fLocation;
int fLocation = 0;
/**
* A flag indicating if this sub-select is dependent on the enclosing query or is constant
*/
bool fDependent;
bool fDependent = false;
/**
* SQL representation of this execution plan
@ -859,57 +859,57 @@ class CalpontSelectExecutionPlan : public CalpontExecutionPlan
static ColumnMap fColMap; // for getplan to use. class-wise map
ColumnMap fColumnMap; // for ExeMgr to use. not shared between objects
uint32_t fSessionID;
int fTxnID; // SQLEngine only needs the ID value
uint32_t fSessionID = 0;
int fTxnID = -1; // SQLEngine only needs the ID value
BRM::QueryContext fVerID;
// @bug5316. remove static
std::string fSchemaName;
std::string fTableName;
uint32_t fTraceFlags;
uint32_t fTraceFlags = TRACE_NONE;
/**
* One-up statementID number for this session (fSessionID)
*/
uint32_t fStatementID;
uint32_t fStatementID = 0;
RMParmVec frmParms;
TableList fTableList;
SelectList fDerivedTableList;
bool fDistinct;
bool fOverrideLargeSideEstimate;
bool fDistinct = false;
bool fOverrideLargeSideEstimate = false;
// for union
SelectList fUnionVec;
uint8_t fDistinctUnionNum;
uint8_t fDistinctUnionNum = 0;
// for subselect
uint64_t fSubType;
uint64_t fSubType = MAIN_SELECT;
std::string fDerivedTbAlias;
std::string fDerivedTbView;
// for limit
uint64_t fLimitStart;
uint64_t fLimitNum;
uint64_t fLimitStart = 0;
uint64_t fLimitNum = -1;
// for parent select order by
bool fHasOrderBy;
bool fHasOrderBy = false;
// for Select clause subquery
SelectList fSelectSubList;
// @bug3321, for string scan blocks
uint64_t fStringScanThreshold;
uint64_t fStringScanThreshold = ULONG_MAX;
// query type
uint32_t fQueryType;
uint32_t fQueryType = SELECT;
uint32_t fPriority;
uint32_t fStringTableThreshold;
uint32_t fStringTableThreshold = 20;
// for specific handlers processing, e.g. GROUP BY
bool fSpecHandlerProcessed;
uint32_t fOrderByThreads;
bool fSpecHandlerProcessed = false;
uint32_t fOrderByThreads = 1;
// Derived table involved in the query. For derived table optimization
std::vector<SCSEP> fSubSelectList;
@ -917,14 +917,12 @@ class CalpontSelectExecutionPlan : public CalpontExecutionPlan
boost::uuids::uuid fUuid;
/* Disk-based join vars */
uint64_t fDJSSmallSideLimit;
uint64_t fDJSLargeSideLimit;
uint64_t fDJSPartitionSize;
int64_t fUMMemLimit;
bool fIsDML;
long fTimeZone;
uint64_t fDJSSmallSideLimit = 0;
uint64_t fDJSLargeSideLimit = 0;
uint64_t fDJSPartitionSize = 100 * 1024 * 1024;
int64_t fUMMemLimit = numeric_limits<int64_t>::max();
bool fIsDML = false;
long fTimeZone = 0;
std::vector<execplan::ParseTree*> fDynamicParseTreeVec;
};