mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
- FIX PIVOT bug MDEV-5869 caused by using fop (field option ptr) when NULL.
modified: storage/connect/ha_connect.cc - Suppress the use of connect.in by adding the connect_xtrace system variable. modified: storage/connect/ha_connect.cc - Make column length, varchar, and temporal column types recognized in discovery when using SRCDEF,or PIVOT. modified: storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myutil.cpp storage/connect/plgdbsem.h - Avoid (rare) crash when using DECIMAL type. (buf was too small) modified: storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/valblk.cpp storage/connect/value.cpp - General cleaning of unused code, standardize tracing, and update version number modified: storage/connect/block.h storage/connect/colblk.cpp storage/connect/connect.cc storage/connect/csort.h storage/connect/filamap.cpp storage/connect/filamdbf.cpp storage/connect/filamfix.cpp storage/connect/filamzip.cpp storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/myconn.cpp storage/connect/mysql-test/connect/r/alter.result storage/connect/mysql-test/connect/r/xml.result storage/connect/myutil.cpp storage/connect/osutil.c storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/reldef.cpp storage/connect/tabcol.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp storage/connect/tabpivot.cpp storage/connect/tabvct.cpp storage/connect/user_connect.cc storage/connect/valblk.cpp storage/connect/value.cpp storage/connect/xindex.cpp
This commit is contained in:
@@ -43,6 +43,8 @@
|
||||
#define CheckBlanks assert(!Blanks);
|
||||
#define CheckParms(V, N) ChkIndx(N); ChkTyp(V);
|
||||
|
||||
extern "C" int trace;
|
||||
|
||||
/***********************************************************************/
|
||||
/* AllocValBlock: allocate a VALBLK according to type. */
|
||||
/***********************************************************************/
|
||||
@@ -51,10 +53,9 @@ PVBLK AllocValBlock(PGLOBAL g, void *mp, int type, int nval, int len,
|
||||
{
|
||||
PVBLK blkp;
|
||||
|
||||
#ifdef DEBTRACE
|
||||
htrc("AVB: mp=%p type=%d nval=%d len=%d check=%u blank=%u\n",
|
||||
mp, type, nval, len, check, blank);
|
||||
#endif
|
||||
if (trace)
|
||||
htrc("AVB: mp=%p type=%d nval=%d len=%d check=%u blank=%u\n",
|
||||
mp, type, nval, len, check, blank);
|
||||
|
||||
switch (type) {
|
||||
case TYPE_STRING:
|
||||
@@ -546,7 +547,7 @@ int TYPBLK<TYPE>::Find(PVAL vp)
|
||||
template <class TYPE>
|
||||
int TYPBLK<TYPE>::GetMaxLength(void)
|
||||
{
|
||||
char buf[32];
|
||||
char buf[64];
|
||||
int i, n, m;
|
||||
|
||||
for (i = n = 0; i < Nval; i++) {
|
||||
@@ -737,13 +738,13 @@ void CHRBLK::SetValue(char *sp, uint len, int n)
|
||||
{
|
||||
char *p = Chrp + n * Long;
|
||||
|
||||
#if defined(_DEBUG) || defined(DEBTRACE)
|
||||
#if defined(_DEBUG)
|
||||
if (Check && (signed)len > Long) {
|
||||
PGLOBAL& g = Global;
|
||||
strcpy(g->Message, MSG(SET_STR_TRUNC));
|
||||
longjmp(g->jumper[g->jump_level], Type);
|
||||
} // endif Check
|
||||
#endif
|
||||
#endif // _DEBUG
|
||||
|
||||
if (sp)
|
||||
memcpy(p, sp, min((unsigned)Long, len));
|
||||
@@ -786,13 +787,13 @@ void CHRBLK::SetValue(PVBLK pv, int n1, int n2)
|
||||
/***********************************************************************/
|
||||
void CHRBLK::SetValues(PVBLK pv, int k, int n)
|
||||
{
|
||||
#if defined(_DEBUG) || defined(DEBTRACE)
|
||||
#if defined(_DEBUG)
|
||||
if (Type != pv->GetType() || Long != ((CHRBLK*)pv)->Long) {
|
||||
PGLOBAL& g = Global;
|
||||
strcpy(g->Message, MSG(BLKTYPLEN_MISM));
|
||||
longjmp(g->jumper[g->jump_level], Type);
|
||||
} // endif Type
|
||||
#endif
|
||||
#endif // _DEBUG
|
||||
char *p = ((CHRBLK*)pv)->Chrp;
|
||||
|
||||
if (!k)
|
||||
|
Reference in New Issue
Block a user