diff options
author | Olivier Bertrand <bertrandop@gmail.com> | 2018-05-07 18:39:02 +0200 |
---|---|---|
committer | Olivier Bertrand <bertrandop@gmail.com> | 2018-05-07 18:39:02 +0200 |
commit | 762111ea3aeec8ef0d4f77b0cedbe97fa76d114f (patch) | |
tree | c89cb24798664a6dda216ff0660afc4db026cf0d /storage/connect | |
parent | 494fb254e7f80770d91a5f4b97b0fe3f263aea3c (diff) | |
download | mariadb-git-762111ea3aeec8ef0d4f77b0cedbe97fa76d114f.tar.gz |
- 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
Diffstat (limited to 'storage/connect')
-rw-r--r-- | storage/connect/domdoc.cpp | 4 | ||||
-rw-r--r-- | storage/connect/filamtxt.cpp | 2 | ||||
-rw-r--r-- | storage/connect/ha_connect.cc | 32 | ||||
-rw-r--r-- | storage/connect/json.h | 3 | ||||
-rw-r--r-- | storage/connect/jsonudf.cpp | 4 | ||||
-rw-r--r-- | storage/connect/mycat.cc | 15 | ||||
-rw-r--r-- | storage/connect/tabext.cpp | 2 | ||||
-rw-r--r-- | storage/connect/tabjson.cpp | 14 | ||||
-rw-r--r-- | storage/connect/tabjson.h | 1 | ||||
-rw-r--r-- | storage/connect/user_connect.cc | 1 |
10 files changed, 33 insertions, 45 deletions
diff --git a/storage/connect/domdoc.cpp b/storage/connect/domdoc.cpp index ba8eb829abd..9ae34a3b9ef 100644 --- a/storage/connect/domdoc.cpp +++ b/storage/connect/domdoc.cpp @@ -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 diff --git a/storage/connect/filamtxt.cpp b/storage/connect/filamtxt.cpp index 7c222eb3c80..490ca3a5fba 100644 --- a/storage/connect/filamtxt.cpp +++ b/storage/connect/filamtxt.cpp @@ -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 diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index c878bf2a7de..e09eddc4555 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -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); diff --git a/storage/connect/json.h b/storage/connect/json.h index dcc97287420..cc394401cc3 100644 --- a/storage/connect/json.h +++ b/storage/connect/json.h @@ -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); diff --git a/storage/connect/jsonudf.cpp b/storage/connect/jsonudf.cpp index e45846ea23b..6a3004f5c7a 100644 --- a/storage/connect/jsonudf.cpp +++ b/storage/connect/jsonudf.cpp @@ -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; diff --git a/storage/connect/mycat.cc b/storage/connect/mycat.cc index 230c0a4aa6f..5aef6d9c660 100644 --- a/storage/connect/mycat.cc +++ b/storage/connect/mycat.cc @@ -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 diff --git a/storage/connect/tabext.cpp b/storage/connect/tabext.cpp index 64d401bef15..139e4199ed9 100644 --- a/storage/connect/tabext.cpp +++ b/storage/connect/tabext.cpp @@ -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) diff --git a/storage/connect/tabjson.cpp b/storage/connect/tabjson.cpp index b66682e0190..9e4f5ab987d 100644 --- a/storage/connect/tabjson.cpp +++ b/storage/connect/tabjson.cpp @@ -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: diff --git a/storage/connect/tabjson.h b/storage/connect/tabjson.h index 0341c0f8aa0..2ff72905e86 100644 --- a/storage/connect/tabjson.h +++ b/storage/connect/tabjson.h @@ -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. */ diff --git a/storage/connect/user_connect.cc b/storage/connect/user_connect.cc index 9532d7c2a8d..e2d3b664aeb 100644 --- a/storage/connect/user_connect.cc +++ b/storage/connect/user_connect.cc @@ -36,6 +36,7 @@ #define DONT_DEFINE_VOID #define MYSQL_SERVER +#include <my_global.h> #include "sql_class.h" #undef OFFSET |