mirror of
https://github.com/MariaDB/server.git
synced 2025-10-26 08:28:13 +01:00
commit c545d544378483bf68c4fb713cd4ec872d0df2c4
Author: Olivier Bertrand <bertrandop@gmail.com>
Date: Tue Mar 27 23:13:14 2018 +0200
- Fix MDEV-15577 CONNECT engine JDBC remote index prevents UPDATE
Fixed in TDBJDBC::OpenDB because query can be null for updates
modified: storage/connect/tabjdbc.cpp
commit c4f1fe2e8e74566e9c3296f435448d9f5c718b23
Author: Olivier Bertrand <bertrandop@gmail.com>
Date: Wed Mar 14 12:21:17 2018 +0100
- Fix MDEV-15429 CONNECT engine JDBC handling Postgresql UUID type
Also handle Postgresql sending type VARCHAR for TEXT column and
setting length to b x7FFFFFF when the length is unknown.
modified: storage/connect/Client.java
modified: storage/connect/JavaWrappers.jar
modified: storage/connect/JdbcInterface.java
modified: storage/connect/PostgresqlInterface.java
modified: storage/connect/global.h
modified: storage/connect/ha_connect.cc
modified: storage/connect/jdbconn.cpp
modified: storage/connect/jdbconn.h
modified: storage/connect/mysql-test/connect/r/jdbc_postgresql.result
modified: storage/connect/mysql-test/connect/t/jdbc_postgresql.test
modified: storage/connect/mysql-test/connect/t/jdbconn.inc
modified: storage/connect/plgdbsem.h
modified: storage/connect/tabjdbc.cpp
modified: storage/connect/tabjdbc.h
added: storage/connect/mysql-test/connect/std_data/JavaWrappers.jar
commit 3068bb4882a316c6c32c624609db2bf24ae3ad40
Author: Olivier Bertrand <bertrandop@gmail.com>
Date: Mon Feb 26 19:40:27 2018 +0100
Revert to old cmake file to avoid compile error
commit da8c1c0bd6a327fd03bd321be3170f468122ef67
Author: Olivier Bertrand <bertrandop@gmail.com>
Date: Mon Feb 26 16:13:39 2018 +0100
- Remove warning on not used tabtyp variable in connect_assisted_discovery
modified: storage/connect/ha_connect.cc
- Fix a bug causing CONNECT to loop when expanding a JSON column
when the expanded column value is null or void array.
- Adding the FullArray option to JSON tables.
- Skipping expanded JSON lines when the expanded column value is null.
modified: storage/connect/connect.cc
modified: storage/connect/tabdos.h
modified: storage/connect/tabjson.cpp
modified: storage/connect/tabjson.h
- Fix MDEV-13353 No file privilege for ODBC, JDBC, MONGO, MAC, WMI file types.
modified: storage/connect/ha_connect.cc
- Make some Json UDFs to accept a non JSON item as 1st parameter.
modified: storage/connect/json.cpp
modified: storage/connect/json.h
modified: storage/connect/jsonudf.cpp
modified: storage/connect/jsonudf.h
- Update Json UDF tests to cope with above changes.
modified: storage/connect/mysql-test/connect/r/json_udf.result
modified: storage/connect/mysql-test/connect/r/json_udf_bin.result
modified: storage/connect/mysql-test/connect/r/vcol.result
modified: storage/connect/mysql-test/connect/t/json_udf.test
modified: storage/connect/mysql-test/connect/t/vcol.test
- Fix some compiler warning treated as error
PlugSubAlloc no more exported because it does throw.
modified: storage/connect/global.h
modified: storage/connect/ha_connect.cc
modified: storage/connect/jsonudf.cpp
modified: storage/connect/tabjson.cpp
modified: storage/connect/tabjson.h
- Other files modified (?) when going back to wrong merge
modified: storage/connect/CMakeLists.txt
modified: storage/connect/array.cpp
modified: storage/connect/colblk.cpp
modified: storage/connect/connect.cc
modified: storage/connect/csort.cpp
modified: storage/connect/domdoc.cpp
modified: storage/connect/filamap.cpp
modified: storage/connect/filamgz.cpp
modified: storage/connect/filamtxt.cpp
modified: storage/connect/filamzip.cpp
modified: storage/connect/filter.cpp
modified: storage/connect/fmdlex.c
modified: storage/connect/jdbconn.cpp
modified: storage/connect/macutil.cpp
modified: storage/connect/myconn.cpp
modified: storage/connect/odbconn.cpp
modified: storage/connect/plgdbutl.cpp
modified: storage/connect/plugutil.cpp
modified: storage/connect/preparse.h
modified: storage/connect/rcmsg.c
modified: storage/connect/rcmsg.h
modified: storage/connect/reldef.cpp
modified: storage/connect/tabdos.cpp
modified: storage/connect/tabfmt.cpp
modified: storage/connect/tabmac.cpp
modified: storage/connect/tabmul.cpp
modified: storage/connect/tabmysql.cpp
modified: storage/connect/tabmysql.h
modified: storage/connect/tabodbc.cpp
modified: storage/connect/tabtbl.cpp
modified: storage/connect/tabxml.cpp
modified: storage/connect/value.cpp
modified: storage/connect/xobject.cpp
commit 5095628b31ed8c94bd7c794c6b0162894a9040b1
Author: Olivier Bertrand <bertrandop@gmail.com>
Date: Tue Feb 13 14:29:00 2018 +0100
- Fix a bug causing CONNECT to loop when expanding a JSON column
when the expanded column value is null or void array.
- Adding the FullArray option to JSON tables.
- Skipping expanded JSON lines when the expanded column value is null.
modified: storage/connect/connect.cc
modified: storage/connect/tabdos.h
modified: storage/connect/tabjson.cpp
modified: storage/connect/tabjson.h
commit 9896174328da42016735630c893fd09eb128b48e
Author: Olivier Bertrand <bertrandop@gmail.com>
Date: Fri Feb 2 15:48:57 2018 +0100
- Remove warning on not used tabtyp variable in connect_assisted_discovery
modified: storage/connect/ha_connect.cc
commit d7e254c05f88173eb04d8dafc813013eb42ccdbe
Author: Olivier Bertrand <bertrandop@gmail.com>
Date: Wed Jan 31 14:42:45 2018 +0100
- Use delayed load for the MongoDB C Drive on Windows
modified: storage/connect/CMakeLists.txt
modified: storage/connect/cmgoconn.cpp
modified: storage/connect/ha_connect.cc
- Add FORCE to the connect_type_conv enum values
This will translate binary values to TYPE_STRING
modified: storage/connect/checklvl.h
modified: storage/connect/ha_connect.cc
modified: storage/connect/odbconn.cpp
- Change the connect_xtrace variable to from int to set
modified: storage/connect/array.cpp
modified: storage/connect/blkfil.cpp
modified: storage/connect/block.h
modified: storage/connect/cmgoconn.cpp
modified: storage/connect/colblk.cpp
modified: storage/connect/connect.cc
modified: storage/connect/filamap.cpp
modified: storage/connect/filamdbf.cpp
modified: storage/connect/filamfix.cpp
modified: storage/connect/filamgz.cpp
modified: storage/connect/filamtxt.cpp
modified: storage/connect/filamvct.cpp
modified: storage/connect/filamzip.cpp
modified: storage/connect/filter.cpp
modified: storage/connect/global.h
modified: storage/connect/ha_connect.cc
modified: storage/connect/inihandl.cpp
modified: storage/connect/javaconn.cpp
modified: storage/connect/jdbconn.cpp
modified: storage/connect/jmgfam.cpp
modified: storage/connect/jmgoconn.cpp
modified: storage/connect/json.cpp
modified: storage/connect/jsonudf.cpp
modified: storage/connect/libdoc.cpp
modified: storage/connect/mongo.cpp
modified: storage/connect/mycat.cc
modified: storage/connect/myconn.cpp
modified: storage/connect/odbconn.cpp
modified: storage/connect/plgdbutl.cpp
modified: storage/connect/plugutil.cpp
modified: storage/connect/reldef.cpp
modified: storage/connect/tabcol.cpp
modified: storage/connect/tabdos.cpp
modified: storage/connect/tabext.cpp
modified: storage/connect/tabfix.cpp
modified: storage/connect/tabfmt.cpp
modified: storage/connect/tabjdbc.cpp
modified: storage/connect/tabjson.cpp
modified: storage/connect/table.cpp
modified: storage/connect/tabmul.cpp
modified: storage/connect/tabmysql.cpp
modified: storage/connect/tabodbc.cpp
modified: storage/connect/tabpivot.cpp
modified: storage/connect/tabsys.cpp
modified: storage/connect/tabtbl.cpp
modified: storage/connect/tabutil.cpp
modified: storage/connect/tabvct.cpp
modified: storage/connect/tabwmi.cpp
modified: storage/connect/tabxml.cpp
modified: storage/connect/user_connect.cc
modified: storage/connect/valblk.cpp
modified: storage/connect/value.cpp
modified: storage/connect/xindex.cpp
- Restore connect_enable_mongo variable (but undocumented)
modified: storage/connect/ha_connect.cc
modified: storage/connect/mycat.cc
modified: storage/connect/mysql-test/connect/r/json_java_2.result
modified: storage/connect/mysql-test/connect/r/json_java_3.result
modified: storage/connect/mysql-test/connect/r/json_mongo_c.result
modified: storage/connect/mysql-test/connect/r/mongo_c.result
modified: storage/connect/mysql-test/connect/r/mongo_java_2.result
modified: storage/connect/mysql-test/connect/r/mongo_java_3.result
modified: storage/connect/mysql-test/connect/r/tbl_thread.result
modified: storage/connect/mysql-test/connect/t/mongo.inc
modified: storage/connect/mysql-test/connect/t/mongo_test.inc
modified: storage/connect/mysql-test/connect/t/tbl_thread.test
169 lines
5.8 KiB
C++
169 lines
5.8 KiB
C++
/************* TabCol C++ Functions Source Code File (.CPP) ************/
|
|
/* Name: TABCOL.CPP Version 2.7 */
|
|
/* */
|
|
/* (C) Copyright to the author Olivier BERTRAND 1998-2015 */
|
|
/* */
|
|
/* This file contains the PlugDB++ XTAB, COLUMN and XORDER methods. */
|
|
/***********************************************************************/
|
|
|
|
/***********************************************************************/
|
|
/* Include relevant MariaDB header file. */
|
|
/***********************************************************************/
|
|
#include "my_global.h"
|
|
|
|
/***********************************************************************/
|
|
/* Include required application header files */
|
|
/* global.h is header containing all global Plug declarations. */
|
|
/* plgdbsem.h is header containing the DB applic. declarations. */
|
|
/* tabcol.h is header containing XTAB, and XORDER declares. */
|
|
/***********************************************************************/
|
|
#include "global.h"
|
|
#include "plgdbsem.h"
|
|
#include "xtable.h"
|
|
#include "tabcol.h"
|
|
|
|
/***********************************************************************/
|
|
/* XTAB public constructor. */
|
|
/***********************************************************************/
|
|
XTAB::XTAB(LPCSTR name, LPCSTR srcdef) : Name(name)
|
|
{
|
|
Next = NULL;
|
|
To_Tdb = NULL;
|
|
Srcdef = srcdef;
|
|
Schema = NULL;
|
|
Qualifier = NULL;
|
|
|
|
if (trace(1))
|
|
htrc("XTAB: making new TABLE %s %s\n", Name, Srcdef);
|
|
|
|
} // end of XTAB constructor
|
|
|
|
/***********************************************************************/
|
|
/* XTAB public constructor as a copy of another table. */
|
|
/***********************************************************************/
|
|
XTAB::XTAB(PTABLE tp) : Name(tp->Name)
|
|
{
|
|
Next = NULL;
|
|
To_Tdb = NULL;
|
|
Srcdef = tp->Srcdef;
|
|
Schema = tp->Schema;
|
|
Qualifier = tp->Qualifier;
|
|
|
|
if (trace(1))
|
|
htrc(" making copy TABLE %s %s\n", Name, SVP(Srcdef));
|
|
|
|
} // end of XTAB constructor
|
|
|
|
/***********************************************************************/
|
|
/* Link the tab2 tables to the tab1(this) table chain. */
|
|
/***********************************************************************/
|
|
PTABLE XTAB::Link(PTABLE tab2)
|
|
{
|
|
PTABLE tabp;
|
|
|
|
if (trace(1))
|
|
htrc("Linking tables %s... to %s\n", Name, tab2->Name);
|
|
|
|
for (tabp = this; tabp->Next; tabp = tabp->Next) ;
|
|
|
|
tabp->Next = tab2;
|
|
return (this);
|
|
} /* end of Link */
|
|
|
|
/***********************************************************************/
|
|
/* Make file output of XTAB contents. */
|
|
/***********************************************************************/
|
|
void XTAB::Printf(PGLOBAL g, FILE *f, uint n)
|
|
{
|
|
char m[64];
|
|
|
|
memset(m, ' ', n); /* Make margin string */
|
|
m[n] = '\0';
|
|
|
|
for (PTABLE tp = this; tp; tp = tp->Next) {
|
|
fprintf(f, "%sTABLE: %s.%s %s\n",
|
|
m, SVP(tp->Schema), tp->Name, SVP(tp->Srcdef));
|
|
PlugPutOut(g, f, TYPE_TDB, tp->To_Tdb, n + 2);
|
|
} /* endfor tp */
|
|
|
|
} /* end of Printf */
|
|
|
|
/***********************************************************************/
|
|
/* Make string output of XTAB contents. */
|
|
/***********************************************************************/
|
|
void XTAB::Prints(PGLOBAL, char *ps, uint z)
|
|
{
|
|
char buf[128];
|
|
int i, n = (int)z - 1;
|
|
|
|
*ps = '\0';
|
|
|
|
for (PTABLE tp = this; tp && n > 0; tp = tp->Next) {
|
|
i = sprintf(buf, "TABLE: %s.%s %s To_Tdb=%p ",
|
|
SVP(tp->Schema), tp->Name, SVP(tp->Srcdef), tp->To_Tdb);
|
|
strncat(ps, buf, n);
|
|
n -= i;
|
|
} // endif tp
|
|
|
|
} /* end of Prints */
|
|
|
|
|
|
/***********************************************************************/
|
|
/* COLUMN public constructor. */
|
|
/***********************************************************************/
|
|
COLUMN::COLUMN(LPCSTR name) : Name(name)
|
|
{
|
|
To_Table = NULL;
|
|
To_Col = NULL;
|
|
Qualifier = NULL;
|
|
|
|
if (trace(1))
|
|
htrc(" making new COLUMN %s\n", Name);
|
|
|
|
} // end of COLUMN constructor
|
|
|
|
/***********************************************************************/
|
|
/* COLUMN SetFormat: should never be called. */
|
|
/***********************************************************************/
|
|
bool COLUMN::SetFormat(PGLOBAL g, FORMAT&)
|
|
{
|
|
strcpy(g->Message, MSG(NO_FORMAT_COL));
|
|
return true;
|
|
} // end of SetFormat
|
|
|
|
/***********************************************************************/
|
|
/* Make file output of COLUMN contents. */
|
|
/***********************************************************************/
|
|
void COLUMN::Printf(PGLOBAL g, FILE *f, uint n)
|
|
{
|
|
char m[64];
|
|
|
|
memset(m, ' ', n); // Make margin string
|
|
m[n] = '\0';
|
|
|
|
if (Name)
|
|
fprintf(f, "%sCOLUMN: %s.%s\n", m,
|
|
((!Qualifier) ? (PSZ)"?" : Qualifier), Name);
|
|
else // LNA
|
|
fprintf(f, "%sC%d\n", m, (!Qualifier) ? 0 : *(int *)Qualifier);
|
|
|
|
PlugPutOut(g, f, TYPE_TABLE, To_Table, n + 2);
|
|
PlugPutOut(g, f, TYPE_XOBJECT, To_Col, n + 2);
|
|
} /* end of Printf */
|
|
|
|
/***********************************************************************/
|
|
/* Make string output of COLUMN contents. */
|
|
/***********************************************************************/
|
|
void COLUMN::Prints(PGLOBAL, char *ps, uint z)
|
|
{
|
|
char buf[80];
|
|
|
|
if (Name)
|
|
sprintf(buf, "COLUMN: %s.%s table=%p col=%p",
|
|
((!Qualifier) ? (PSZ)"?" : Qualifier), Name, To_Table, To_Col);
|
|
else // LNA
|
|
sprintf(buf, "C%d", (!Qualifier) ? 0 : *(int *)Qualifier);
|
|
|
|
strncpy(ps, buf, z);
|
|
ps[z - 1] = '\0';
|
|
} /* end of Prints */
|