mirror of
https://github.com/MariaDB/server.git
synced 2025-01-28 17:54:16 +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".
124 lines
4.2 KiB
C++
124 lines
4.2 KiB
C++
/*************** TabVct H Declares Source Code File (.H) ***************/
|
|
/* Name: TABVCT.H Version 3.4 */
|
|
/* */
|
|
/* (C) Copyright to the author Olivier BERTRAND 1999-2011 */
|
|
/* */
|
|
/* This file contains the TDBVCT class declares. */
|
|
/***********************************************************************/
|
|
#ifndef __TABVCT__
|
|
#define __TABVCT__
|
|
|
|
#include "tabfix.h"
|
|
#if defined(UNIX)
|
|
//#include <string.h.SUNWCCh>
|
|
#endif
|
|
|
|
typedef class TDBVCT *PTDBVCT;
|
|
typedef class VCTCOL *PVCTCOL;
|
|
|
|
/***********************************************************************/
|
|
/* VCT table. */
|
|
/***********************************************************************/
|
|
class DllExport VCTDEF : public DOSDEF { /* Logical table description */
|
|
friend class TDBVCT;
|
|
friend class VCTFAM;
|
|
friend class VECFAM;
|
|
friend class VMPFAM;
|
|
public:
|
|
// Constructor
|
|
VCTDEF(void) {Split = false; Estimate = Header = 0;}
|
|
|
|
// Implementation
|
|
virtual const char *GetType(void) {return "VCT";}
|
|
int GetEstimate(void) {return Estimate;}
|
|
|
|
// Methods
|
|
virtual bool DefineAM(PGLOBAL g, LPCSTR am, int poff);
|
|
virtual PTDB GetTable(PGLOBAL g, MODE mode);
|
|
|
|
protected:
|
|
int MakeFnPattern(char *fpat);
|
|
|
|
// Members
|
|
bool Split; /* Columns in separate files */
|
|
int Estimate; /* Estimated maximum size of table */
|
|
int Header; /* 0: no, 1: separate, 2: in data file */
|
|
}; // end of VCTDEF
|
|
|
|
/***********************************************************************/
|
|
/* This is the DOS/UNIX Access Method class declaration for files */
|
|
/* in blocked vector format. In each block containing "Elements" */
|
|
/* records, values of each columns are consecutively stored (vector). */
|
|
/***********************************************************************/
|
|
class DllExport TDBVCT : public TDBFIX {
|
|
friend class VCTCOL;
|
|
friend class VCTFAM;
|
|
friend class VCMFAM;
|
|
friend class VECFAM;
|
|
friend class VMPFAM;
|
|
public:
|
|
// Constructors
|
|
TDBVCT(PVCTDEF tdp, PTXF txfp);
|
|
TDBVCT(PGLOBAL g, PTDBVCT tdbp);
|
|
|
|
// Implementation
|
|
virtual AMT GetAmType(void) {return TYPE_AM_VCT;}
|
|
virtual PTDB Duplicate(PGLOBAL g)
|
|
{return (PTDB)new(g) TDBVCT(g, this);}
|
|
bool IsSplit(void) {return ((VCTDEF*)To_Def)->Split;}
|
|
|
|
// Methods
|
|
virtual PTDB Clone(PTABS t);
|
|
virtual bool IsUsingTemp(PGLOBAL g);
|
|
|
|
// Database routines
|
|
virtual PCOL MakeCol(PGLOBAL g, PCOLDEF cdp, PCOL cprec, int n);
|
|
virtual bool OpenDB(PGLOBAL g);
|
|
virtual int ReadDB(PGLOBAL g);
|
|
virtual void CloseDB(PGLOBAL g);
|
|
|
|
protected:
|
|
// Members
|
|
}; // end of class TDBVCT
|
|
|
|
/***********************************************************************/
|
|
/* Class VCTCOL: VCT access method column descriptor. */
|
|
/* This A.M. is used for file having column wise organization. */
|
|
/***********************************************************************/
|
|
class DllExport VCTCOL : public DOSCOL {
|
|
friend class TDBVCT;
|
|
friend class VCTFAM;
|
|
friend class VCMFAM;
|
|
friend class VECFAM;
|
|
friend class VMPFAM;
|
|
friend class BGVFAM;
|
|
public:
|
|
// Constructors
|
|
VCTCOL(PGLOBAL g, PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i);
|
|
VCTCOL(VCTCOL *colp, PTDB tdbp); // Constructor used in copy process
|
|
|
|
// Implementation
|
|
virtual int GetAmType(void) {return TYPE_AM_VCT;}
|
|
|
|
// Methods
|
|
virtual void ReadColumn(PGLOBAL g);
|
|
virtual void WriteColumn(PGLOBAL g);
|
|
virtual bool SetBuffer(PGLOBAL g, PVAL value, bool ok, bool check);
|
|
virtual void SetOk(void);
|
|
|
|
protected:
|
|
virtual void ReadBlock(PGLOBAL g);
|
|
virtual void WriteBlock(PGLOBAL g);
|
|
|
|
VCTCOL(void) = default; // Default constructor not to be used
|
|
|
|
// Members
|
|
PVBLK Blk; // Block buffer
|
|
int Clen; // Internal length in table
|
|
int ColBlk; // Block pointed by column
|
|
int ColPos; // Last position read
|
|
int Modif; // Number of modified lines in block
|
|
}; // end of class VCTCOL
|
|
|
|
#endif // __TABVCT__
|
|
|