summaryrefslogtreecommitdiff
path: root/storage/connect/mycat.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/connect/mycat.cc')
-rw-r--r--storage/connect/mycat.cc115
1 files changed, 11 insertions, 104 deletions
diff --git a/storage/connect/mycat.cc b/storage/connect/mycat.cc
index 411e96e3dc8..f8b3dc03aa5 100644
--- a/storage/connect/mycat.cc
+++ b/storage/connect/mycat.cc
@@ -95,7 +95,7 @@
#endif // ZIP_SUPPORT
#if defined(REST_SUPPORT)
#include "tabrest.h"
-#endif // Rest_SUPPORT
+#endif // REST_SUPPORT
#include "mycat.h"
/***********************************************************************/
@@ -104,8 +104,9 @@
#if defined(__WIN__)
extern "C" HINSTANCE s_hModule; // Saved module handle
#endif // !__WIN__
-
-PQRYRES OEMColumns(PGLOBAL g, PTOS topt, char *tab, char *db, bool info);
+#if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT)
+bool MongoEnabled(void);
+#endif // JAVA_SUPPORT || CMGO_SUPPORT
/***********************************************************************/
/* Get the plugin directory. */
@@ -347,100 +348,6 @@ uint GetFuncID(const char *func)
return fnc;
} // end of GetFuncID
-/***********************************************************************/
-/* OEMColumn: Get table column info for an OEM table. */
-/***********************************************************************/
-PQRYRES OEMColumns(PGLOBAL g, PTOS topt, char *tab, char *db, bool info)
- {
- typedef PQRYRES (__stdcall *XCOLDEF) (PGLOBAL, void*, char*, char*, bool);
- const char *module, *subtype;
- char c, soname[_MAX_PATH], getname[40] = "Col";
-#if defined(__WIN__)
- HANDLE hdll; /* Handle to the external DLL */
-#else // !__WIN__
- void *hdll; /* Handle for the loaded shared library */
-#endif // !__WIN__
- XCOLDEF coldef = NULL;
- PQRYRES qrp = NULL;
-
- module = topt->module;
- subtype = topt->subtype;
-
- if (!module || !subtype)
- return NULL;
-
- /*********************************************************************/
- /* Ensure that the .dll doesn't have a path. */
- /* This is done to ensure that only approved dll from the system */
- /* directories are used (to make this even remotely secure). */
- /*********************************************************************/
- if (check_valid_path(module, strlen(module))) {
- strcpy(g->Message, "Module cannot contain a path");
- return NULL;
- } else
- PlugSetPath(soname, module, GetPluginDir());
-
- // The exported name is always in uppercase
- for (int i = 0; ; i++) {
- c = subtype[i];
- getname[i + 3] = toupper(c);
- if (!c) break;
- } // endfor i
-
-#if defined(__WIN__)
- // Load the Dll implementing the table
- if (!(hdll = LoadLibrary(soname))) {
- char buf[256];
- DWORD rc = GetLastError();
-
- sprintf(g->Message, MSG(DLL_LOAD_ERROR), rc, soname);
- FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS, NULL, rc, 0,
- (LPTSTR)buf, sizeof(buf), NULL);
- strcat(strcat(g->Message, ": "), buf);
- return NULL;
- } // endif hDll
-
- // Get the function returning an instance of the external DEF class
- if (!(coldef = (XCOLDEF)GetProcAddress((HINSTANCE)hdll, getname))) {
- sprintf(g->Message, MSG(PROCADD_ERROR), GetLastError(), getname);
- FreeLibrary((HMODULE)hdll);
- return NULL;
- } // endif coldef
-#else // !__WIN__
- const char *error = NULL;
-
- // Load the desired shared library
- if (!(hdll = dlopen(soname, RTLD_LAZY))) {
- error = dlerror();
- sprintf(g->Message, MSG(SHARED_LIB_ERR), soname, SVP(error));
- return NULL;
- } // endif Hdll
-
- // Get the function returning an instance of the external DEF class
- if (!(coldef = (XCOLDEF)dlsym(hdll, getname))) {
- error = dlerror();
- sprintf(g->Message, MSG(GET_FUNC_ERR), getname, SVP(error));
- dlclose(hdll);
- return NULL;
- } // endif coldef
-#endif // !__WIN__
-
- // Just in case the external Get function does not set error messages
- sprintf(g->Message, "Error getting column info from %s", subtype);
-
- // Get the table column definition
- qrp = coldef(g, topt, tab, db, info);
-
-#if defined(__WIN__)
- FreeLibrary((HMODULE)hdll);
-#else // !__WIN__
- dlclose(hdll);
-#endif // !__WIN__
-
- return qrp;
- } // end of OEMColumns
-
/* ------------------------- Class CATALOG --------------------------- */
/***********************************************************************/
@@ -481,10 +388,10 @@ void MYCAT::Reset(void)
/* GetTableDesc: retrieve a table descriptor. */
/* Look for a table descriptor matching the name and type. */
/***********************************************************************/
-PRELDEF MYCAT::GetTableDesc(PGLOBAL g, PTABLE tablep,
+PTABDEF MYCAT::GetTableDesc(PGLOBAL g, PTABLE tablep,
LPCSTR type, PRELDEF *)
{
- PRELDEF tdp= NULL;
+ PTABDEF tdp= NULL;
if (trace(1))
htrc("GetTableDesc: name=%s am=%s\n", tablep->GetName(), SVP(type));
@@ -505,12 +412,12 @@ PRELDEF MYCAT::GetTableDesc(PGLOBAL g, PTABLE tablep,
/* MakeTableDesc: make a table/view description. */
/* Note: caller must check if name already exists before calling it. */
/***********************************************************************/
-PRELDEF MYCAT::MakeTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR am)
+PTABDEF MYCAT::MakeTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR am)
{
TABTYPE tc;
LPCSTR name= (PSZ)PlugDup(g, tablep->GetName());
LPCSTR schema= (PSZ)PlugDup(g, tablep->GetSchema());
- PRELDEF tdp= NULL;
+ PTABDEF tdp= NULL;
if (trace(1))
htrc("MakeTableDesc: name=%s schema=%s am=%s\n",
@@ -578,8 +485,8 @@ PRELDEF MYCAT::MakeTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR am)
} // endswitch
// Do make the table/view definition
- if (tdp && tdp->Define(g, this, name, schema, am))
- tdp= NULL;
+ if (tdp && tdp->Define(g, this, name, schema, am))
+ tdp = NULL;
if (trace(1))
htrc("Table %s made\n", am);
@@ -592,7 +499,7 @@ PRELDEF MYCAT::MakeTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR am)
/***********************************************************************/
PTDB MYCAT::GetTable(PGLOBAL g, PTABLE tablep, MODE mode, LPCSTR type)
{
- PRELDEF tdp;
+ PTABDEF tdp;
PTDB tdbp= NULL;
// LPCSTR name= tablep->GetName();