mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 19:06:14 +01:00 
			
		
		
		
	 db0c28eff8
			
		
	
	
	db0c28eff8
	
	
	
		
			
			Find and fix missing virtual override markings. Updates cmake maintainer flags to include -Wsuggest-override and -Winconsistent-missing-override.
		
			
				
	
	
		
			133 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /**************** tabcmg H Declares Source Code File (.H) **************/
 | |
| /*  Name: tabcmg.h   Version 1.3                                       */
 | |
| /*                                                                     */
 | |
| /*  (C) Copyright to the author Olivier BERTRAND          2017 - 2021  */
 | |
| /*                                                                     */
 | |
| /*  This file contains the MongoDB classes declares.                   */
 | |
| /***********************************************************************/
 | |
| #include "mongo.h"
 | |
| #include "cmgoconn.h"
 | |
| 
 | |
| /***********************************************************************/
 | |
| /*  Class used to get the columns of a mongo collection.               */
 | |
| /***********************************************************************/
 | |
| class CMGDISC : public MGODISC {
 | |
| public:
 | |
| 	// Constructor
 | |
| 	CMGDISC(PGLOBAL g, int *lg) : MGODISC(g, lg) { drv = "C"; }
 | |
| 
 | |
| 	// Methods
 | |
| 	void GetDoc(void) override;
 | |
| //bool Find(PGLOBAL g, int i, int k, bool b) override;
 | |
| 	bool Find(PGLOBAL g) override;
 | |
| 
 | |
| 	// BSON Function
 | |
| //bool FindInDoc(PGLOBAL g, bson_iter_t *iter, const bson_t *doc,
 | |
| //	             char *pcn, char *pfmt, int i, int k, bool b);
 | |
| 	bool FindInDoc(PGLOBAL g, bson_iter_t *iter, const bson_t *doc,
 | |
| 		             char *pcn, char *pfmt, int k, bool b);
 | |
| 
 | |
| 	// Members
 | |
| 	bson_iter_t   iter;
 | |
| 	const bson_t *doc;
 | |
| }; // end of CMGDISC
 | |
| 
 | |
| /* -------------------------- TDBCMG class --------------------------- */
 | |
| 
 | |
| /***********************************************************************/
 | |
| /*  This is the MongoDB Table Type class declaration.                  */
 | |
| /*  The table is a collection, each record being a document.           */
 | |
| /***********************************************************************/
 | |
| class DllExport TDBCMG : public TDBEXT {
 | |
| 	friend class MGOCOL;
 | |
| 	friend class MGODEF;
 | |
| 	friend class CMGDISC;
 | |
| 	friend PQRYRES MGOColumns(PGLOBAL, PCSZ, PCSZ, PTOS, bool);
 | |
| public:
 | |
| 	// Constructor
 | |
| 	TDBCMG(MGODEF *tdp);
 | |
| 	TDBCMG(TDBCMG *tdbp);
 | |
| 
 | |
| 	// Implementation
 | |
| 	AMT  GetAmType(void) override {return TYPE_AM_MGO;}
 | |
| 	PTDB Duplicate(PGLOBAL g) {return (PTDB)new(g) TDBCMG(this);}
 | |
| 
 | |
| 	// Methods
 | |
| 	PTDB Clone(PTABS t) override;
 | |
| 	PCOL MakeCol(PGLOBAL g, PCOLDEF cdp, PCOL cprec, int n) override;
 | |
| 	PCOL InsertSpecialColumn(PCOL colp) override;
 | |
| 	int  RowNumber(PGLOBAL g, bool b = FALSE) override {return N;}
 | |
| 
 | |
| 	// Database routines
 | |
| 	int  Cardinality(PGLOBAL g) override;
 | |
| 	int  GetMaxSize(PGLOBAL g) override;
 | |
| 	bool OpenDB(PGLOBAL g) override;
 | |
| 	int  ReadDB(PGLOBAL g) override;
 | |
| 	int  WriteDB(PGLOBAL g) override;
 | |
| 	int  DeleteDB(PGLOBAL g, int irc) override;
 | |
| 	void CloseDB(PGLOBAL g) override;
 | |
| 	bool ReadKey(PGLOBAL g, OPVAL op, const key_range *kr) override;
 | |
| 
 | |
| protected:
 | |
| 	bool Init(PGLOBAL g);
 | |
| 
 | |
| 	// Members
 | |
| 	CMgoConn             *Cmgp;       // Points to a C Mongo connection class
 | |
| 	CMGOPARM							Pcg;				// Parms passed to Cmgp
 | |
| 	const Item           *Cnd;			  // The first condition
 | |
| 	PCSZ									Strfy;			// The stringified columns
 | |
| 	int                   Fpos;       // The current row index
 | |
| 	int                   N;          // The current Rownum
 | |
| 	int                   B;          // Array index base
 | |
| 	bool                  Done;			  // Init done
 | |
| }; // end of class TDBCMG
 | |
| 
 | |
| /* --------------------------- MGOCOL class -------------------------- */
 | |
| 
 | |
| /***********************************************************************/
 | |
| /*  Class MGOCOL: MongoDB access method column descriptor.             */
 | |
| /***********************************************************************/
 | |
| class DllExport MGOCOL : public EXTCOL {
 | |
| 	friend class TDBCMG;
 | |
| 	friend class FILTER;
 | |
| public:
 | |
| 	// Constructors
 | |
| 	MGOCOL(PGLOBAL g, PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i);
 | |
| 	MGOCOL(MGOCOL *colp, PTDB tdbp); // Constructor used in copy process
 | |
| 
 | |
| 	// Implementation
 | |
| 	int   GetAmType(void) override { return Tmgp->GetAmType(); }
 | |
| 	bool  Stringify(void) override { return Sgfy; }
 | |
| 
 | |
| 	// Methods
 | |
| 	PSZ   GetJpath(PGLOBAL g, bool proj) override;
 | |
| 	void  ReadColumn(PGLOBAL g) override;
 | |
| 	void  WriteColumn(PGLOBAL g) override;
 | |
| 
 | |
| protected:
 | |
| 	// Default constructor not to be used
 | |
| 	MGOCOL(void) {}
 | |
| 
 | |
| 	// Members
 | |
| 	TDBCMG *Tmgp;                 // To the MGO table block
 | |
| 	char   *Jpath;                // The json path
 | |
| 	bool    Sgfy;									// True if stringified
 | |
| }; // end of class MGOCOL
 | |
| 
 | |
| /***********************************************************************/
 | |
| /*  This is the class declaration for the MONGO catalog table.         */
 | |
| /***********************************************************************/
 | |
| class DllExport TDBGOL : public TDBCAT {
 | |
| public:
 | |
| 	// Constructor
 | |
| 	TDBGOL(PMGODEF tdp);
 | |
| 
 | |
| protected:
 | |
| 	// Specific routines
 | |
| 	virtual PQRYRES GetResult(PGLOBAL g) override;
 | |
| 
 | |
| 	// Members
 | |
| 	PTOS Topt;
 | |
| 	PCSZ Uri;
 | |
| 	PCSZ Db;
 | |
| }; // end of class TDBGOL
 |