mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 12:56:14 +01:00 
			
		
		
		
	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".
		
			
				
	
	
		
			147 lines
		
	
	
	
		
			5.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
	
		
			5.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/**************** tabjmg H Declares Source Code File (.H) **************/
 | 
						|
/*  Name: tabjmg.h   Version 1.3                                       */
 | 
						|
/*                                                                     */
 | 
						|
/*  (C) Copyright to the author Olivier BERTRAND          2017 - 2021  */
 | 
						|
/*                                                                     */
 | 
						|
/*  This file contains the MongoDB classes using the Java Driver.      */
 | 
						|
/***********************************************************************/
 | 
						|
#include "mongo.h"
 | 
						|
#include "jmgoconn.h"
 | 
						|
#include "jdbccat.h"
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  Class used to get the columns of a mongo collection.               */
 | 
						|
/***********************************************************************/
 | 
						|
class JMGDISC : public MGODISC {
 | 
						|
public:
 | 
						|
	// Constructor
 | 
						|
	JMGDISC(PGLOBAL g, int *lg);
 | 
						|
 | 
						|
	// Methods
 | 
						|
	virtual bool Init(PGLOBAL g);
 | 
						|
	virtual void GetDoc(void) {}
 | 
						|
	virtual bool Find(PGLOBAL g);
 | 
						|
 | 
						|
protected:
 | 
						|
	// Function
 | 
						|
	bool ColDesc(PGLOBAL g, jobject obj, char *pcn, char *pfmt, 
 | 
						|
							 int ncol, int k);
 | 
						|
 | 
						|
	// Members
 | 
						|
	JMgoConn *Jcp;                // Points to a Mongo connection class
 | 
						|
	jmethodID columnid;						// The ColumnDesc method ID
 | 
						|
	jmethodID bvnameid;						// The ColDescName method ID
 | 
						|
}; // end of JMGDISC
 | 
						|
 | 
						|
/* -------------------------- TDBJMG class --------------------------- */
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  This is the MongoDB Table Type using the Java Driver.              */
 | 
						|
/*  The table is a collection, each record being a document.           */
 | 
						|
/***********************************************************************/
 | 
						|
class DllExport TDBJMG : public TDBEXT {
 | 
						|
	friend class JMGCOL;
 | 
						|
	friend class MGODEF;
 | 
						|
	friend class JMGDISC;
 | 
						|
	friend class JAVAConn;
 | 
						|
	friend PQRYRES MGOColumns(PGLOBAL, PCSZ, PCSZ, PTOS, bool);
 | 
						|
public:
 | 
						|
	// Constructor
 | 
						|
	TDBJMG(PMGODEF tdp);
 | 
						|
	TDBJMG(TDBJMG *tdbp);
 | 
						|
 | 
						|
	// Implementation
 | 
						|
	virtual AMT  GetAmType(void) { return TYPE_AM_MGO; }
 | 
						|
	virtual PTDB Duplicate(PGLOBAL g) { return (PTDB)new(g) TDBJMG(this); }
 | 
						|
 | 
						|
	// Methods
 | 
						|
	virtual PTDB Clone(PTABS t);
 | 
						|
	virtual PCOL MakeCol(PGLOBAL g, PCOLDEF cdp, PCOL cprec, int n);
 | 
						|
	virtual PCOL InsertSpecialColumn(PCOL colp);
 | 
						|
//virtual void SetFilter(PFIL fp);
 | 
						|
	virtual int  RowNumber(PGLOBAL g, bool b = FALSE) { return N; }
 | 
						|
 | 
						|
	// Database routines
 | 
						|
	virtual int  Cardinality(PGLOBAL g);
 | 
						|
	virtual int  GetMaxSize(PGLOBAL g);
 | 
						|
	virtual bool OpenDB(PGLOBAL g);
 | 
						|
	virtual int  ReadDB(PGLOBAL g);
 | 
						|
	virtual int  WriteDB(PGLOBAL g);
 | 
						|
	virtual int  DeleteDB(PGLOBAL g, int irc);
 | 
						|
	virtual void CloseDB(PGLOBAL g);
 | 
						|
	virtual bool ReadKey(PGLOBAL g, OPVAL op, const key_range *kr);
 | 
						|
 | 
						|
protected:
 | 
						|
	bool Init(PGLOBAL g);
 | 
						|
 | 
						|
	// Members
 | 
						|
	JMgoConn  *Jcp;                // Points to a Mongo connection class
 | 
						|
//JMGCOL    *Cnp;                // Points to count(*) column
 | 
						|
	JDBCPARM   Ops;                // Additional parameters
 | 
						|
	PCSZ       Uri;
 | 
						|
	PCSZ       Db_name;
 | 
						|
	PCSZ       Coll_name;
 | 
						|
	PCSZ       Options;		         // The MongoDB options
 | 
						|
	PCSZ       Filter;			       // The filtering query
 | 
						|
	PCSZ			 Strfy;			         // The stringified columns
 | 
						|
	PSZ        Wrapname;           // Java wrapper name
 | 
						|
	int        Fpos;               // The current row index
 | 
						|
	int        N;                  // The current Rownum
 | 
						|
	int        B;                  // Array index base
 | 
						|
	bool       Done;			         // Init done
 | 
						|
	bool       Pipe;			         // True for pipeline
 | 
						|
}; // end of class TDBJMG
 | 
						|
 | 
						|
/* --------------------------- JMGCOL class -------------------------- */
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  Class JMGCOL: MongoDB access method column descriptor.             */
 | 
						|
/***********************************************************************/
 | 
						|
class DllExport JMGCOL : public EXTCOL {
 | 
						|
	friend class TDBJMG;
 | 
						|
	friend class FILTER;
 | 
						|
public:
 | 
						|
	// Constructors
 | 
						|
	JMGCOL(PGLOBAL g, PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i);
 | 
						|
	JMGCOL(JMGCOL *colp, PTDB tdbp); // Constructor used in copy process
 | 
						|
 | 
						|
	// Implementation
 | 
						|
	virtual int   GetAmType(void) {return Tmgp->GetAmType();}
 | 
						|
	virtual bool  Stringify(void) { return Sgfy; }
 | 
						|
 | 
						|
	// Methods
 | 
						|
	//virtual bool SetBuffer(PGLOBAL g, PVAL value, bool ok, bool check);
 | 
						|
	virtual PSZ   GetJpath(PGLOBAL g, bool proj);
 | 
						|
	virtual void  ReadColumn(PGLOBAL g);
 | 
						|
	virtual void  WriteColumn(PGLOBAL g);
 | 
						|
//bool AddValue(PGLOBAL g, bson_t *doc, char *key, bool upd);
 | 
						|
 | 
						|
protected:
 | 
						|
	// Default constructor not to be used
 | 
						|
	JMGCOL(void) = default;
 | 
						|
//char *GetProjPath(PGLOBAL g);
 | 
						|
//char *Mini(PGLOBAL g, const bson_t *bson, bool b);
 | 
						|
 | 
						|
	// Members
 | 
						|
	TDBJMG *Tmgp;                 // To the MGO table block
 | 
						|
	char   *Jpath;                // The json path
 | 
						|
	bool    Sgfy;									// True if stringified
 | 
						|
}; // end of class JMGCOL
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  This is the class declaration for the MONGO catalog table.         */
 | 
						|
/***********************************************************************/
 | 
						|
class DllExport TDBJGL : public TDBCAT {
 | 
						|
public:
 | 
						|
	// Constructor
 | 
						|
	TDBJGL(PMGODEF tdp);
 | 
						|
 | 
						|
protected:
 | 
						|
	// Specific routines
 | 
						|
	virtual PQRYRES GetResult(PGLOBAL g);
 | 
						|
 | 
						|
	// Members
 | 
						|
	PTOS Topt;
 | 
						|
	PCSZ Uri;
 | 
						|
	PCSZ Db;
 | 
						|
}; // end of class TDBGOL
 |