mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	Find and fix missing virtual override markings. Updates cmake maintainer flags to include -Wsuggest-override and -Winconsistent-missing-override.
		
			
				
	
	
		
			104 lines
		
	
	
	
		
			3.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
	
		
			3.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// TABXCL.H     Olivier Bertrand    2013
 | 
						|
// Defines the XCOL tables
 | 
						|
 | 
						|
#include "tabutil.h"
 | 
						|
 | 
						|
typedef class XCLDEF  *PXCLDEF;
 | 
						|
typedef class TDBXCL  *PTDBXCL;
 | 
						|
typedef class XCLCOL  *PXCLCOL;
 | 
						|
 | 
						|
/* -------------------------- XCOL classes --------------------------- */
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  XCOL: table having one column containing several values comma      */
 | 
						|
/*  (or any other character) separated. When creating the table, the   */
 | 
						|
/*  name of the X column is given by the NAME option.                  */
 | 
						|
/*  This sample has a limitation:                                      */
 | 
						|
/*  - The X column has the same length than in the physical file.      */
 | 
						|
/*  This tables produces as many rows for a physical row than the      */
 | 
						|
/*  number of items in the X column (eventually 0).                    */
 | 
						|
/***********************************************************************/
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  XCL table.                                                         */
 | 
						|
/***********************************************************************/
 | 
						|
class XCLDEF : public PRXDEF {            /* Logical table description */
 | 
						|
	friend class TDBXCL;
 | 
						|
 public:
 | 
						|
  // Constructor
 | 
						|
	 XCLDEF(void);
 | 
						|
 | 
						|
  // Implementation
 | 
						|
  const char *GetType(void) override {return "XCL";}
 | 
						|
 | 
						|
  // Methods
 | 
						|
  bool DefineAM(PGLOBAL g, LPCSTR am, int poff) override;
 | 
						|
  PTDB GetTable(PGLOBAL g, MODE mode) override;
 | 
						|
 | 
						|
 protected:
 | 
						|
  // Members
 | 
						|
  char   *Xcol;              /* The column containing separated fields */
 | 
						|
	char    Sep;							 /* The field separator, defaults to comma */
 | 
						|
  int     Mult;              /* Multiplication factor                  */
 | 
						|
  }; // end of XCLDEF
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  This is the class declaration for the XCOL table.                  */
 | 
						|
/***********************************************************************/
 | 
						|
class TDBXCL : public TDBPRX {
 | 
						|
  friend class XCLDEF;
 | 
						|
  friend class PRXCOL;
 | 
						|
  friend class XCLCOL;
 | 
						|
 public:
 | 
						|
  // Constructor
 | 
						|
  TDBXCL(PXCLDEF tdp);
 | 
						|
 | 
						|
  // Implementation
 | 
						|
  AMT   GetAmType(void) override {return TYPE_AM_XCOL;}
 | 
						|
 | 
						|
  // Methods
 | 
						|
	void  ResetDB(void) override {N = 0; Tdbp->ResetDB();}
 | 
						|
	int   RowNumber(PGLOBAL g, bool b = FALSE) override;
 | 
						|
 | 
						|
  // Database routines
 | 
						|
	PCOL  MakeCol(PGLOBAL g, PCOLDEF cdp, PCOL cprec, int n) override;
 | 
						|
  int   GetMaxSize(PGLOBAL g) override;
 | 
						|
  bool  OpenDB(PGLOBAL g) override;
 | 
						|
  int   ReadDB(PGLOBAL g) override;
 | 
						|
 | 
						|
 protected:
 | 
						|
  // Members
 | 
						|
	char   *Xcolumn;								// Multiple column name
 | 
						|
	PXCLCOL Xcolp;									// To the XCVCOL column
 | 
						|
	int     Mult;										// Multiplication factor
 | 
						|
	int     N;											// The current table index
 | 
						|
	int			M;                      // The occurrence rank
 | 
						|
	BYTE    RowFlag;								// 0: Ok, 1: Same, 2: Skip
 | 
						|
	bool    New;						        // TRUE for new line
 | 
						|
	char    Sep;										// The Xcol separator
 | 
						|
  }; // end of class TDBXCL
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  Class XCLCOL: for the multiple CSV column.                         */
 | 
						|
/***********************************************************************/
 | 
						|
class XCLCOL : public PRXCOL {
 | 
						|
  friend class TDBXCL;
 | 
						|
 public:
 | 
						|
  // Constructors
 | 
						|
  XCLCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i);
 | 
						|
 | 
						|
  // Methods
 | 
						|
  using PRXCOL::Init;
 | 
						|
  void Reset(void) override {}	  // Evaluated only by TDBXCL
 | 
						|
  void ReadColumn(PGLOBAL g) override;
 | 
						|
  bool Init(PGLOBAL g, PTDB tp = NULL) override;
 | 
						|
 | 
						|
 protected:
 | 
						|
  // Default constructor not to be used
 | 
						|
  XCLCOL(void) = default;
 | 
						|
 | 
						|
  // Members
 | 
						|
	char   *Cbuf;					        // The column buffer
 | 
						|
	char   *Cp;						        // Pointer to current position
 | 
						|
	char    Sep;					        // The separator
 | 
						|
  }; // end of class XCLCOL
 |