diff options
author | Olivier Bertrand <bertrandop@gmail.com> | 2017-07-02 22:29:31 +0200 |
---|---|---|
committer | Olivier Bertrand <bertrandop@gmail.com> | 2017-07-02 22:41:11 +0200 |
commit | 94e5d7de85a2964e7dd9a02e91a71522ccc66f94 (patch) | |
tree | 45164d08bff5a905f88da27762fcf3c089299cd7 /storage/connect/tabjmg.h | |
parent | c51548d6b4234d1b9bf7548125f63c5975f37d35 (diff) | |
download | mariadb-git-94e5d7de85a2964e7dd9a02e91a71522ccc66f94.tar.gz |
- Add Support of the MongoDB Java Driver.
modified: storage/connect/CMakeLists.txt
modified: storage/connect/JavaWrappers.jar
modified: storage/connect/colblk.h
modified: storage/connect/filter.cpp
modified: storage/connect/filter.h
modified: storage/connect/ha_connect.cc
modified: storage/connect/ha_connect.h
modified: storage/connect/jdbccat.h
modified: storage/connect/jdbconn.cpp
modified: storage/connect/jdbconn.h
modified: storage/connect/mongofam.cpp
modified: storage/connect/mongofam.h
modified: storage/connect/mycat.cc
modified: storage/connect/mycat.h
modified: storage/connect/tabext.h
modified: storage/connect/tabjdbc.cpp
modified: storage/connect/tabjdbc.h
modified: storage/connect/tabjson.cpp
modified: storage/connect/tabjson.h
modified: storage/connect/tabmgo.cpp
modified: storage/connect/tabmgo.h
created: storage/connect/Mongo2Interface.java
created: storage/connect/Mongo3Interface.java
created: storage/connect/cmgoconn.cpp
created: storage/connect/cmgoconn.h
created: storage/connect/javaconn.cpp
created: storage/connect/javaconn.h
created: storage/connect/jmgfam.cpp
created: storage/connect/jmgfam.h
created: storage/connect/jmgoconn.cpp
created: storage/connect/jmgoconn.h
created: storage/connect/mongo.cpp
created: storage/connect/mongo.h
created: storage/connect/tabjmg.cpp
created: storage/connect/tabjmg.h
- tdbp not initialized when catched exception
in CntGetTDB (connect.cc line 188)
modified: storage/connect/connect.h
- CheckCleanup should sometimes doing cleanup on pure info
Sometimes MariaDB loops on info to get the size of all tables in a database.
This can sometimes fail by exhausted memory.
CheckCleanup now have a force boolean parameter (defaulting to false)
modified: storage/connect/ha_connect.cc
modified: storage/connect/user_connect.cc
modified: storage/connect/user_connect.h
Change the copyright of some source files
modified: storage/connect/connect.cc
modified: storage/connect/connect.h
modified: storage/connect/engmsg.h
modified: storage/connect/global.h
modified: storage/connect/ha_connect.cc
modified: storage/connect/ha_connect.h
modified: storage/connect/msgid.h
modified: storage/connect/mycat.cc
modified: storage/connect/mycat.h
modified: storage/connect/os.h
modified: storage/connect/osutil.c
modified: storage/connect/osutil.h
modified: storage/connect/user_connect.cc
modified: storage/connect/user_connect.h
Diffstat (limited to 'storage/connect/tabjmg.h')
-rw-r--r-- | storage/connect/tabjmg.h | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/storage/connect/tabjmg.h b/storage/connect/tabjmg.h new file mode 100644 index 00000000000..92b5df2419f --- /dev/null +++ b/storage/connect/tabjmg.h @@ -0,0 +1,122 @@ +/**************** tabjmg H Declares Source Code File (.H) **************/ +/* Name: tabjmg.h Version 1.0 */ +/* */ +/* (C) Copyright to the author Olivier BERTRAND 2017 */ +/* */ +/* This file contains the MongoDB classes using the Java Driver. */ +/***********************************************************************/ +#include "mongo.h" +#include "jmgoconn.h" +#include "jdbccat.h" + +/* -------------------------- 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 MGODISC; + 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 + 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();} + + // 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) {} +//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 +//char *Mbuf; // The Mini buffer +}; // end of class JMGCOL + +#if 0 +/***********************************************************************/ +/* 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); + + // Members + PTOS Topt; + char *Db; +}; // end of class TDBGOL +#endif 0 |