mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
- Fix MDEV-15735 CONNECT [filamtxt.cpp:429]: Suspicious condition
modified: storage/connect/filamtxt.cpp - Fix compiler warnings modified: storage/connect/domdoc.cpp modified: storage/connect/ha_connect.cc modified: storage/connect/json.h modified: storage/connect/jsonudf.cpp modified: storage/connect/tabext.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h - Miscelleanous from 10.3 modified: storage/connect/ha_connect.cc modified: storage/connect/mycat.cc modified: storage/connect/user_connect.cc
This commit is contained in:
@@ -84,8 +84,8 @@ DOMDOC::DOMDOC(char *nsl, char *nsdf, char *enc, PFBLOCK fp)
|
||||
: XMLDOCUMENT(nsl, nsdf, enc)
|
||||
{
|
||||
assert (!fp || fp->Type == TYPE_FB_XML);
|
||||
Docp = (fp) ? ((PXBLOCK)fp)->Docp : NULL;
|
||||
Nlist = NULL;
|
||||
Docp = (fp) ? ((PXBLOCK)fp)->Docp : (MSXML2::IXMLDOMDocumentPtr)NULL;
|
||||
Nlist = NULL;
|
||||
Hr = 0;
|
||||
} // end of DOMDOC constructor
|
||||
|
||||
|
@@ -427,7 +427,7 @@ int TXTFAM::DeleteSortedRows(PGLOBAL g)
|
||||
|
||||
for (i = 0; i < Posar->GetNval(); i++) {
|
||||
if ((irc = InitDelete(g, Posar->GetIntValue(ix[i]),
|
||||
Sosar->GetIntValue(ix[i])) == RC_FX))
|
||||
Sosar->GetIntValue(ix[i]))) == RC_FX)
|
||||
goto err;
|
||||
|
||||
// Now delete the sorted rows
|
||||
|
@@ -107,13 +107,9 @@
|
||||
|
||||
#define MYSQL_SERVER 1
|
||||
#define DONT_DEFINE_VOID
|
||||
#include "sql_class.h"
|
||||
#include "create_options.h"
|
||||
#include "mysql_com.h"
|
||||
#include "field.h"
|
||||
#include <my_global.h>
|
||||
#include "sql_parse.h"
|
||||
#include "sql_base.h"
|
||||
#include <sys/stat.h>
|
||||
#include "sql_partition.h"
|
||||
#undef OFFSET
|
||||
|
||||
@@ -432,7 +428,7 @@ handlerton *connect_hton= NULL;
|
||||
uint GetTraceValue(void)
|
||||
{return (uint)(connect_hton ? THDVAR(current_thd, xtrace) : 0);}
|
||||
bool ExactInfo(void) {return THDVAR(current_thd, exact_info);}
|
||||
bool CondPushEnabled(void) {return THDVAR(current_thd, cond_push);}
|
||||
static bool CondPushEnabled(void) {return THDVAR(current_thd, cond_push);}
|
||||
USETEMP UseTemp(void) {return (USETEMP)THDVAR(current_thd, use_tempfile);}
|
||||
int GetConvSize(void) {return THDVAR(current_thd, conv_size);}
|
||||
TYPCONV GetTypeConv(void) {return (TYPCONV)THDVAR(current_thd, type_conv);}
|
||||
@@ -1781,12 +1777,14 @@ bool ha_connect::CheckVirtualIndex(TABLE_SHARE *s)
|
||||
|
||||
bool ha_connect::IsPartitioned(void)
|
||||
{
|
||||
if (tshp)
|
||||
#ifdef WITH_PARTITION_STORAGE_ENGINE
|
||||
if (tshp)
|
||||
return tshp->partition_info_str_len > 0;
|
||||
else if (table && table->part_info)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
#endif
|
||||
return false;
|
||||
|
||||
} // end of IsPartitioned
|
||||
|
||||
@@ -2811,7 +2809,7 @@ PCFIL ha_connect::CheckCond(PGLOBAL g, PCFIL filp, const Item *cond)
|
||||
htrc("Cond type=%d\n", cond->type());
|
||||
|
||||
if (cond->type() == COND::COND_ITEM) {
|
||||
char *pb0, *pb1, *pb2, *ph0, *ph1, *ph2;
|
||||
char *pb0, *pb1, *pb2, *ph0= 0, *ph1= 0, *ph2= 0;
|
||||
bool bb = false, bh = false;
|
||||
Item_cond *cond_item= (Item_cond *)cond;
|
||||
|
||||
@@ -5568,7 +5566,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd,
|
||||
} // endif p
|
||||
|
||||
} else if (ttp != TAB_ODBC || !(fnc & (FNC_TABLE | FNC_COL)))
|
||||
tab = table_s->table_name.str; // Default value
|
||||
tab = (char*)table_s->table_name.str; // Default value
|
||||
|
||||
} // endif tab
|
||||
|
||||
@@ -6200,7 +6198,9 @@ int ha_connect::create(const char *name, TABLE *table_arg,
|
||||
LEX_STRING cnc = table_arg->s->connect_string;
|
||||
#if defined(WITH_PARTITION_STORAGE_ENGINE)
|
||||
partition_info *part_info= table_arg->part_info;
|
||||
#endif // WITH_PARTITION_STORAGE_ENGINE
|
||||
#else // !WITH_PARTITION_STORAGE_ENGINE
|
||||
#define part_info 0
|
||||
#endif // !WITH_PARTITION_STORAGE_ENGINE
|
||||
xp= GetUser(thd, xp);
|
||||
PGLOBAL g= xp->g;
|
||||
|
||||
@@ -6301,9 +6301,7 @@ int ha_connect::create(const char *name, TABLE *table_arg,
|
||||
|
||||
// fall through
|
||||
case TAB_MYSQL:
|
||||
#if defined(WITH_PARTITION_STORAGE_ENGINE)
|
||||
if (!part_info)
|
||||
#endif // WITH_PARTITION_STORAGE_ENGINE
|
||||
{const char *src= options->srcdef;
|
||||
PCSZ host, db, tab= options->tabname;
|
||||
int port;
|
||||
@@ -6567,7 +6565,6 @@ int ha_connect::create(const char *name, TABLE *table_arg,
|
||||
} else
|
||||
lwt[i]= tolower(options->type[i]);
|
||||
|
||||
#if defined(WITH_PARTITION_STORAGE_ENGINE)
|
||||
if (part_info) {
|
||||
char *p;
|
||||
|
||||
@@ -6577,7 +6574,6 @@ int ha_connect::create(const char *name, TABLE *table_arg,
|
||||
strcat(strcat(strcpy(buf, p), "."), lwt);
|
||||
*p= 0;
|
||||
} else {
|
||||
#endif // WITH_PARTITION_STORAGE_ENGINE
|
||||
strcat(strcat(strcpy(buf, GetTableName()), "."), lwt);
|
||||
sprintf(g->Message, "No file name. Table will use %s", buf);
|
||||
|
||||
@@ -6585,9 +6581,7 @@ int ha_connect::create(const char *name, TABLE *table_arg,
|
||||
push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message);
|
||||
|
||||
strcat(strcat(strcpy(dbpath, "./"), table->s->db.str), "/");
|
||||
#if defined(WITH_PARTITION_STORAGE_ENGINE)
|
||||
} // endif part_info
|
||||
#endif // WITH_PARTITION_STORAGE_ENGINE
|
||||
|
||||
PlugSetPath(fn, buf, dbpath);
|
||||
|
||||
@@ -6652,11 +6646,9 @@ int ha_connect::create(const char *name, TABLE *table_arg,
|
||||
push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0,
|
||||
"Unexpected command in create, please contact CONNECT team");
|
||||
|
||||
#if defined(WITH_PARTITION_STORAGE_ENGINE)
|
||||
if (part_info && !inward)
|
||||
strncpy(partname, decode(g, strrchr(name, '#') + 1), sizeof(partname) - 1);
|
||||
// strcpy(partname, part_info->curr_part_elem->partition_name);
|
||||
#endif // WITH_PARTITION_STORAGE_ENGINE
|
||||
|
||||
if (g->Alchecked == 0 &&
|
||||
(!IsFileType(type) || FileExists(options->filename, false))) {
|
||||
@@ -6692,12 +6684,10 @@ int ha_connect::create(const char *name, TABLE *table_arg,
|
||||
my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0));
|
||||
rc = HA_ERR_INTERNAL_ERROR;
|
||||
} else if (cat) {
|
||||
#if defined(WITH_PARTITION_STORAGE_ENGINE)
|
||||
if (part_info)
|
||||
strncpy(partname,
|
||||
decode(g, strrchr(name, (inward ? slash : '#')) + 1),
|
||||
sizeof(partname) - 1);
|
||||
#endif // WITH_PARTITION_STORAGE_ENGINE
|
||||
|
||||
if ((rc= optimize(table->in_use, NULL))) {
|
||||
htrc("Create rc=%d %s\n", rc, g->Message);
|
||||
|
@@ -44,6 +44,9 @@ typedef struct {
|
||||
int len;
|
||||
} STRG, *PSG;
|
||||
|
||||
char *NextChr(PSZ s, char sep);
|
||||
char *GetJsonNull(void);
|
||||
|
||||
PJSON ParseJson(PGLOBAL g, char *s, int n, int *prty = NULL, bool *b = NULL);
|
||||
PJAR ParseArray(PGLOBAL g, int& i, STRG& src, bool *pty);
|
||||
PJOB ParseObject(PGLOBAL g, int& i, STRG& src, bool *pty);
|
||||
|
@@ -1620,7 +1620,7 @@ static my_bool CheckMemory(PGLOBAL g, UDF_INIT *initid, UDF_ARGS *args, uint n,
|
||||
if (AllocSarea(g, ml)) {
|
||||
char errmsg[MAX_STR];
|
||||
|
||||
sprintf(errmsg, MSG(WORK_AREA), g->Message);
|
||||
snprintf(errmsg, sizeof(errmsg) - 1, MSG(WORK_AREA), g->Message);
|
||||
strcpy(g->Message, errmsg);
|
||||
return true;
|
||||
} // endif SareaAlloc
|
||||
@@ -1673,7 +1673,7 @@ static PCSZ MakeKey(PGLOBAL g, UDF_ARGS *args, int i)
|
||||
n = strlen(s);
|
||||
|
||||
if (IsJson(args, i))
|
||||
j = strchr(s, '_') - s + 1;
|
||||
j = (int)(strchr(s, '_') - s + 1);
|
||||
|
||||
if (j && n > j) {
|
||||
s += j;
|
||||
|
@@ -18,7 +18,7 @@
|
||||
/* ------------- */
|
||||
/* Version 1.6 */
|
||||
/* */
|
||||
/* Author: Olivier Bertrand 2012 - 2017 */
|
||||
/* Author: Olivier Bertrand 2012 - 2018 */
|
||||
/* */
|
||||
/* WHAT THIS PROGRAM DOES: */
|
||||
/* ----------------------- */
|
||||
@@ -28,20 +28,13 @@
|
||||
/***********************************************************************/
|
||||
/* Include relevant MariaDB header file. */
|
||||
/***********************************************************************/
|
||||
#include <my_config.h>
|
||||
#define DONT_DEFINE_VOID
|
||||
#include <my_global.h>
|
||||
|
||||
#if defined(__WIN__)
|
||||
//#include <windows.h>
|
||||
//#include <sqlext.h>
|
||||
#elif defined(UNIX)
|
||||
#include <sys/types.h>
|
||||
#if defined(UNIX)
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#endif
|
||||
#define DONT_DEFINE_VOID
|
||||
//#include <mysql/plugin.h>
|
||||
#include "handler.h"
|
||||
#undef OFFSET
|
||||
|
||||
|
@@ -286,7 +286,7 @@ bool TDBEXT::MakeSrcdef(PGLOBAL g)
|
||||
char *catp = strstr(Srcdef, "%s");
|
||||
|
||||
if (catp) {
|
||||
char *fil1, *fil2;
|
||||
char *fil1 = 0, *fil2;
|
||||
PCSZ ph = ((EXTDEF*)To_Def)->Phpos;
|
||||
|
||||
if (!ph)
|
||||
|
@@ -195,7 +195,7 @@ int JSONDISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt)
|
||||
tdp->Fn = GetStringTableOption(g, topt, "Filename", NULL);
|
||||
|
||||
if (!(tdp->Database = SetPath(g, db)))
|
||||
return NULL;
|
||||
return 0;
|
||||
|
||||
tdp->Objname = GetStringTableOption(g, topt, "Object", NULL);
|
||||
tdp->Base = GetIntegerTableOption(g, topt, "Base", 0) ? 1 : 0;
|
||||
@@ -243,14 +243,14 @@ int JSONDISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt)
|
||||
tjsp = new(g) TDBJSON(tdp, new(g) MAPFAM(tdp));
|
||||
|
||||
if (tjsp->MakeDocument(g))
|
||||
return NULL;
|
||||
return 0;
|
||||
|
||||
jsp = (tjsp->GetDoc()) ? tjsp->GetDoc()->GetValue(0) : NULL;
|
||||
} else {
|
||||
if (!(tdp->Lrecl = GetIntegerTableOption(g, topt, "Lrecl", 0)))
|
||||
if (!mgo) {
|
||||
sprintf(g->Message, "LRECL must be specified for pretty=%d", tdp->Pretty);
|
||||
return NULL;
|
||||
return 0;
|
||||
} else
|
||||
tdp->Lrecl = 8192; // Should be enough
|
||||
|
||||
@@ -269,14 +269,14 @@ int JSONDISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt)
|
||||
tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp));
|
||||
#else
|
||||
sprintf(g->Message, "Mongo %s Driver not available", "C");
|
||||
return NULL;
|
||||
return 0;
|
||||
#endif
|
||||
} else if (tdp->Driver && toupper(*tdp->Driver) == 'J') {
|
||||
#if defined(JAVA_SUPPORT)
|
||||
tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp));
|
||||
#else
|
||||
sprintf(g->Message, "Mongo %s Driver not available", "Java");
|
||||
return NULL;
|
||||
return 0;
|
||||
#endif
|
||||
} else { // Driver not specified
|
||||
#if defined(CMGO_SUPPORT)
|
||||
@@ -285,7 +285,7 @@ int JSONDISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt)
|
||||
tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp));
|
||||
#else
|
||||
sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO");
|
||||
return NULL;
|
||||
return 0;
|
||||
#endif
|
||||
} // endif Driver
|
||||
|
||||
@@ -304,7 +304,7 @@ int JSONDISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt)
|
||||
tjnp->SetG(G);
|
||||
|
||||
if (tjnp->OpenDB(g))
|
||||
return NULL;
|
||||
return 0;
|
||||
|
||||
switch (tjnp->ReadDB(g)) {
|
||||
case RC_EF:
|
||||
|
@@ -16,6 +16,7 @@ typedef class JSONDEF *PJDEF;
|
||||
typedef class TDBJSON *PJTDB;
|
||||
typedef class JSONCOL *PJCOL;
|
||||
class TDBJSN;
|
||||
PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info);
|
||||
|
||||
/***********************************************************************/
|
||||
/* The JSON tree node. Can be an Object or an Array. */
|
||||
|
@@ -36,6 +36,7 @@
|
||||
|
||||
#define DONT_DEFINE_VOID
|
||||
#define MYSQL_SERVER
|
||||
#include <my_global.h>
|
||||
#include "sql_class.h"
|
||||
#undef OFFSET
|
||||
|
||||
|
Reference in New Issue
Block a user