mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
08c852026d
This patch is the result of running run-clang-tidy -fix -header-filter=.* -checks='-*,modernize-use-equals-default' . Code style changes have been done on top. The result of this change leads to the following improvements: 1. Binary size reduction. * For a -DBUILD_CONFIG=mysql_release build, the binary size is reduced by ~400kb. * A raw -DCMAKE_BUILD_TYPE=Release reduces the binary size by ~1.4kb. 2. Compiler can better understand the intent of the code, thus it leads to more optimization possibilities. Additionally it enabled detecting unused variables that had an empty default constructor but not marked so explicitly. Particular change required following this patch in sql/opt_range.cc result_keys, an unused template class Bitmap now correctly issues unused variable warnings. Setting Bitmap template class constructor to default allows the compiler to identify that there are no side-effects when instantiating the class. Previously the compiler could not issue the warning as it assumed Bitmap class (being a template) would not be performing a NO-OP for its default constructor. This prevented the "unused variable warning".
232 lines
8.8 KiB
C++
232 lines
8.8 KiB
C++
/*************** Colblk H Declares Source Code File (.H) ***************/
|
|
/* Name: COLBLK.H Version 1.7 */
|
|
/* */
|
|
/* (C) Copyright to the author Olivier BERTRAND 2005-2019 */
|
|
/* */
|
|
/* This file contains the COLBLK and derived classes declares. */
|
|
/***********************************************************************/
|
|
#ifndef __COLBLK__H
|
|
#define __COLBLK__H
|
|
|
|
/***********************************************************************/
|
|
/* Include required application header files */
|
|
/***********************************************************************/
|
|
#include "xobject.h"
|
|
#include "reldef.h"
|
|
|
|
/***********************************************************************/
|
|
/* Class COLBLK: Base class for table column descriptors. */
|
|
/***********************************************************************/
|
|
class DllExport COLBLK : public XOBJECT {
|
|
friend class TDBPIVOT;
|
|
protected:
|
|
// Default constructors used by derived classes
|
|
COLBLK(PCOLDEF cdp = NULL, PTDB tdbp = NULL, int i = 0);
|
|
COLBLK(PCOL colp, PTDB tdbp = NULL); // Used in copy process
|
|
COLBLK(int) {} // Used when changing a column class in TDBXML
|
|
|
|
public:
|
|
// Implementation
|
|
virtual int GetType(void) {return TYPE_COLBLK;}
|
|
virtual int GetResultType(void) {return Buf_Type;}
|
|
virtual int GetScale(void) {return Format.Prec;}
|
|
virtual int GetPrecision(void) {return Precision;}
|
|
virtual int GetLength(void) {return Long;}
|
|
virtual int GetLengthEx(void);
|
|
virtual int GetAmType() {return TYPE_AM_ERROR;}
|
|
virtual void SetOk(void) {Status |= BUF_EMPTY;}
|
|
virtual PTDB GetTo_Tdb(void) {return To_Tdb;}
|
|
virtual int GetClustered(void) {return 0;}
|
|
virtual int IsClustered(void) {return FALSE;}
|
|
virtual bool Stringify(void) {return FALSE;}
|
|
virtual PSZ GetJpath(PGLOBAL g, bool proj) {return NULL;}
|
|
PCOL GetNext(void) {return Next;}
|
|
PSZ GetName(void) {return Name;}
|
|
int GetIndex(void) {return Index;}
|
|
ushort GetColUse(void) {return ColUse;}
|
|
int GetOpt(void) {return Opt;}
|
|
ushort GetColUse(ushort u) {return (ColUse & u);}
|
|
ushort GetStatus(void) {return Status;}
|
|
ushort GetStatus(ushort u) {return (Status & u);}
|
|
void SetColUse(ushort u) {ColUse = u;}
|
|
void SetStatus(ushort u) {Status = u;}
|
|
void AddColUse(ushort u) {ColUse |= u;}
|
|
void AddStatus(ushort u) {Status |= u;}
|
|
void SetNext(PCOL cp) {Next = cp;}
|
|
PXCOL GetKcol(void) {return To_Kcol;}
|
|
void SetKcol(PXCOL kcp) {To_Kcol = kcp;}
|
|
PCOLDEF GetCdp(void) {return Cdp;}
|
|
PSZ GetDomain(void) {return (Cdp) ? Cdp->Decode : NULL;}
|
|
PSZ GetDesc(void) {return (Cdp) ? Cdp->Desc : NULL;}
|
|
PSZ GetFmt(void) {return (Cdp) ? Cdp->Fmt : NULL;}
|
|
bool IsUnsigned(void) {return Unsigned;}
|
|
bool IsVirtual(void) {return Cdp->IsVirtual();}
|
|
bool IsNullable(void) {return Nullable;}
|
|
void SetNullable(bool b) {Nullable = b;}
|
|
void SetName(PSZ name_var) { Name= name_var; }
|
|
// Methods
|
|
virtual void Reset(void);
|
|
virtual bool Compare(PXOB xp);
|
|
virtual bool SetFormat(PGLOBAL, FORMAT&);
|
|
virtual bool IsSpecial(void) {return false;}
|
|
virtual bool Eval(PGLOBAL g);
|
|
virtual bool SetBuffer(PGLOBAL g, PVAL value, bool ok, bool check);
|
|
virtual void SetTo_Val(PVAL) {}
|
|
virtual void ReadColumn(PGLOBAL g);
|
|
virtual void WriteColumn(PGLOBAL g);
|
|
virtual void Printf(PGLOBAL g, FILE *, uint);
|
|
virtual void Prints(PGLOBAL g, char *, uint);
|
|
virtual bool VarSize(void) {return false;}
|
|
bool InitValue(PGLOBAL g);
|
|
|
|
protected:
|
|
// Members
|
|
PCOL Next; // Next column in table
|
|
PSZ Name; // Column name
|
|
PCOLDEF Cdp; // To column definition block
|
|
PTDB To_Tdb; // Points to Table Descriptor Block
|
|
PXCOL To_Kcol; // Points to Xindex matching column
|
|
bool Nullable; // True if nullable
|
|
bool Unsigned; // True if unsigned
|
|
int Index; // Column number in table
|
|
int Opt; // Cluster/sort information
|
|
int Buf_Type; // Data type
|
|
int Long; // Internal length in table
|
|
int Precision; // Column length (as for ODBC)
|
|
int Freq; // Evaluated ceiling of distinct values
|
|
FORMAT Format; // Output format
|
|
ushort ColUse; // Column usage
|
|
ushort Status; // Column read status
|
|
}; // end of class COLBLK
|
|
|
|
/***********************************************************************/
|
|
/* Class SPCBLK: Base class for special column descriptors. */
|
|
/***********************************************************************/
|
|
class DllExport SPCBLK : public COLBLK {
|
|
public:
|
|
// Constructor
|
|
SPCBLK(PCOLUMN cp);
|
|
|
|
// Implementation
|
|
virtual int GetAmType(void) = 0;
|
|
virtual bool GetRnm(void) {return false;}
|
|
|
|
// Methods
|
|
virtual bool IsSpecial(void) {return true;}
|
|
virtual void ReadColumn(PGLOBAL g) = 0;
|
|
virtual void WriteColumn(PGLOBAL g);
|
|
|
|
protected:
|
|
// Default constructor not to be used
|
|
SPCBLK(void) : COLBLK(1) {}
|
|
}; // end of class SPCBLK
|
|
|
|
/***********************************************************************/
|
|
/* Class RIDBLK: ROWID special column descriptor. */
|
|
/***********************************************************************/
|
|
class DllExport RIDBLK : public SPCBLK {
|
|
public:
|
|
// Constructor
|
|
RIDBLK(PCOLUMN cp, bool rnm);
|
|
|
|
// Implementation
|
|
virtual int GetAmType(void) {return TYPE_AM_ROWID;}
|
|
virtual bool GetRnm(void) {return Rnm;}
|
|
|
|
// Methods
|
|
virtual void ReadColumn(PGLOBAL g);
|
|
|
|
protected:
|
|
bool Rnm; // False for RowID, True for RowNum
|
|
}; // end of class RIDBLK
|
|
|
|
/***********************************************************************/
|
|
/* Class FIDBLK: FILEID special column descriptor. */
|
|
/***********************************************************************/
|
|
class DllExport FIDBLK : public SPCBLK {
|
|
public:
|
|
// Constructor
|
|
FIDBLK(PCOLUMN cp, OPVAL op);
|
|
|
|
// Implementation
|
|
virtual int GetAmType(void) {return TYPE_AM_FILID;}
|
|
|
|
// Methods
|
|
virtual void Reset(void) {} // This is a pseudo constant column
|
|
virtual void ReadColumn(PGLOBAL g);
|
|
|
|
protected:
|
|
PCSZ Fn; // The current To_File of the table
|
|
OPVAL Op; // The file part operator
|
|
}; // end of class FIDBLK
|
|
|
|
/***********************************************************************/
|
|
/* Class TIDBLK: TABID special column descriptor. */
|
|
/***********************************************************************/
|
|
class DllExport TIDBLK : public SPCBLK {
|
|
public:
|
|
// Constructor
|
|
TIDBLK(PCOLUMN cp);
|
|
|
|
// Implementation
|
|
virtual int GetAmType(void) {return TYPE_AM_TABID;}
|
|
|
|
// Methods
|
|
virtual void Reset(void) {} // This is a pseudo constant column
|
|
virtual void ReadColumn(PGLOBAL g);
|
|
|
|
protected:
|
|
// Default constructor not to be used
|
|
TIDBLK(void) = default;
|
|
|
|
// Members
|
|
PCSZ Tname; // The current table name
|
|
}; // end of class TIDBLK
|
|
|
|
/***********************************************************************/
|
|
/* Class PRTBLK: PARTID special column descriptor. */
|
|
/***********************************************************************/
|
|
class DllExport PRTBLK : public SPCBLK {
|
|
public:
|
|
// Constructor
|
|
PRTBLK(PCOLUMN cp);
|
|
|
|
// Implementation
|
|
virtual int GetAmType(void) {return TYPE_AM_PRTID;}
|
|
|
|
// Methods
|
|
virtual void Reset(void) {} // This is a pseudo constant column
|
|
virtual void ReadColumn(PGLOBAL g);
|
|
|
|
protected:
|
|
// Default constructor not to be used
|
|
PRTBLK(void) = default;
|
|
|
|
// Members
|
|
PCSZ Pname; // The current partition name
|
|
}; // end of class PRTBLK
|
|
|
|
/***********************************************************************/
|
|
/* Class SIDBLK: SERVID special column descriptor. */
|
|
/***********************************************************************/
|
|
class DllExport SIDBLK : public SPCBLK {
|
|
public:
|
|
// Constructor
|
|
SIDBLK(PCOLUMN cp);
|
|
|
|
// Implementation
|
|
virtual int GetAmType(void) {return TYPE_AM_SRVID;}
|
|
|
|
// Methods
|
|
virtual void Reset(void) {} // This is a pseudo constant column
|
|
virtual void ReadColumn(PGLOBAL g);
|
|
|
|
protected:
|
|
// Default constructor not to be used
|
|
SIDBLK(void) = default;
|
|
|
|
// Members
|
|
PCSZ Sname; // The current server name
|
|
}; // end of class SIDBLK
|
|
|
|
#endif // __COLBLK__H
|