summaryrefslogtreecommitdiff
path: root/storage/connect/tabjmg.h
diff options
context:
space:
mode:
authorOlivier Bertrand <bertrandop@gmail.com>2017-07-02 22:29:31 +0200
committerOlivier Bertrand <bertrandop@gmail.com>2017-07-02 22:41:11 +0200
commit94e5d7de85a2964e7dd9a02e91a71522ccc66f94 (patch)
tree45164d08bff5a905f88da27762fcf3c089299cd7 /storage/connect/tabjmg.h
parentc51548d6b4234d1b9bf7548125f63c5975f37d35 (diff)
downloadmariadb-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.h122
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