mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
f590296c28
Implement discovery for the MongoDB Java Driver Create classes to minimize code and avoid dupicates Rearrange and rename implied files modified: storage/connect/CMakeLists.txt renamed: storage/connect/mongofam.cpp -> storage/connect/cmgfam.cpp renamed: storage/connect/mongofam.h -> storage/connect/cmgfam.h modified: storage/connect/cmgoconn.h modified: storage/connect/javaconn.h modified: storage/connect/jdbconn.cpp modified: storage/connect/jmgoconn.cpp modified: storage/connect/jmgoconn.h modified: storage/connect/mongo.cpp modified: storage/connect/mongo.h renamed: storage/connect/tabmgo.cpp -> storage/connect/tabcmg.cpp renamed: storage/connect/tabmgo.h -> storage/connect/tabcmg.h modified: storage/connect/tabjmg.cpp modified: storage/connect/tabjmg.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h -- Trace Sarea allocation and freeing modified: storage/connect/connect.cc modified: storage/connect/plugutil.cpp modified: storage/connect/user_connect.cc -- Null Json values where not mark as null in JSNX::SetJsonValue This was added in TYPE_NULL (declared as TYPE_VOID) modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp -- Null JValues are ignored in JSNX::CalculateArray Also done in tabjson.cpp for JSONCOL::CalculateArray modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/tabjson.cpp -- Null JSON values now represented by connect_json_null session variable modified: storage/connect/json.cpp modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/tabjson.cpp -- JVALUE has size = 1 modified: storage/connect/json.h -- Fix by vuvova because Debian compilation failure. modified: storage/connect/value.cpp
91 lines
2.9 KiB
C++
91 lines
2.9 KiB
C++
/**************** mongo H Declares Source Code File (.H) ***************/
|
|
/* Name: mongo.h Version 1.0 */
|
|
/* */
|
|
/* (C) Copyright to the author Olivier BERTRAND 2017 */
|
|
/* */
|
|
/* This file contains the common MongoDB classes declares. */
|
|
/***********************************************************************/
|
|
#ifndef __MONGO_H
|
|
#define __MONGO_H
|
|
|
|
#include "osutil.h"
|
|
#include "block.h"
|
|
#include "colblk.h"
|
|
|
|
typedef class MGODEF *PMGODEF;
|
|
|
|
typedef struct _bncol {
|
|
struct _bncol *Next;
|
|
char *Name;
|
|
char *Fmt;
|
|
int Type;
|
|
int Len;
|
|
int Scale;
|
|
bool Cbn;
|
|
bool Found;
|
|
} BCOL, *PBCOL;
|
|
|
|
/***********************************************************************/
|
|
/* Class used to get the columns of a mongo collection. */
|
|
/***********************************************************************/
|
|
class MGODISC : public BLOCK {
|
|
public:
|
|
// Constructor
|
|
MGODISC(PGLOBAL g, int *lg);
|
|
|
|
// Methods
|
|
virtual bool Init(PGLOBAL g) { return false; }
|
|
virtual void GetDoc(void) {}
|
|
virtual bool Find(PGLOBAL g) = 0;
|
|
|
|
// Functions
|
|
int GetColumns(PGLOBAL g, PCSZ db, PCSZ uri, PTOS topt);
|
|
void AddColumn(PGLOBAL g, PCSZ colname, PCSZ fmt, int k);
|
|
|
|
// Members
|
|
BCOL bcol;
|
|
PBCOL bcp, fbcp, pbcp;
|
|
PMGODEF tdp;
|
|
PTDB tmgp;
|
|
PCSZ drv;
|
|
int *length;
|
|
int i, ncol, lvl;
|
|
bool all;
|
|
}; // end of MGODISC
|
|
|
|
/***********************************************************************/
|
|
/* MongoDB table. */
|
|
/***********************************************************************/
|
|
class DllExport MGODEF : public EXTDEF { /* Table description */
|
|
friend class TDBCMG;
|
|
friend class TDBJMG;
|
|
friend class TDBGOL;
|
|
friend class TDBJGL;
|
|
friend class CMGFAM;
|
|
friend class MGODISC;
|
|
friend PQRYRES MGOColumns(PGLOBAL, PCSZ, PCSZ, PTOS, bool);
|
|
public:
|
|
// Constructor
|
|
MGODEF(void);
|
|
|
|
// Implementation
|
|
virtual const char *GetType(void) { return "MONGO"; }
|
|
|
|
// Methods
|
|
virtual bool DefineAM(PGLOBAL g, LPCSTR am, int poff);
|
|
virtual PTDB GetTable(PGLOBAL g, MODE m);
|
|
|
|
protected:
|
|
// Members
|
|
PCSZ Driver; /* MongoDB Driver (C or JAVA) */
|
|
PCSZ Uri; /* MongoDB connection URI */
|
|
PSZ Wrapname; /* Java wrapper name */
|
|
PCSZ Colist; /* Options list */
|
|
PCSZ Filter; /* Filtering query */
|
|
int Level; /* Used for catalog table */
|
|
int Base; /* The array index base */
|
|
int Version; /* The Java driver version */
|
|
bool Pipe; /* True is Colist is a pipeline */
|
|
}; // end of MGODEF
|
|
|
|
#endif // __MONGO_H
|