mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	 db0c28eff8
			
		
	
	
	db0c28eff8
	
	
	
		
			
			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
 |