Changeset: 04c044ee89de for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=04c044ee89de Added Files: sql/benchmarks/ATIS/Tests/select_group.stable.out.int128 sql/test/BugTracker-2009/Tests/case_evaluates_all_branches.SF-2893484.stable.out.int128 sql/test/BugTracker-2015/Tests/incorrect_result_type.Bug-3687.sql sql/test/BugTracker-2015/Tests/incorrect_result_type.Bug-3687.stable.err sql/test/BugTracker-2015/Tests/incorrect_result_type.Bug-3687.stable.out sql/test/BugTracker-2015/Tests/incorrect_result_type.Bug-3687.stable.out.int128 sql/test/BugTracker-2015/Tests/operator-priority.Bug-3686.sql sql/test/BugTracker-2015/Tests/operator-priority.Bug-3686.stable.err sql/test/BugTracker-2015/Tests/operator-priority.Bug-3686.stable.out Modified Files: clients/Tests/SQL-dump_all.stable.out clients/Tests/SQL-dump_all.stable.out.int128 clients/Tests/SQL-dump_all.stable.out.oid32 clients/Tests/SQL-dump_all.stable.out.oid32.int128 clients/Tests/SQL-dump_geom.stable.out clients/Tests/SQL-dump_geom.stable.out.32bit clients/Tests/SQL-dump_geom.stable.out.64bit.oid32 clients/Tests/SQL-dump_none.stable.out clients/Tests/exports.stable.out clients/mapiclient/tachograph.c clients/mapilib/mapi.c clients/odbc/driver/SQLBrowseConnect.c clients/odbc/driver/SQLGetDescField.c clients/odbc/driver/SQLGetInfo.c clients/odbc/driver/SQLGetStmtAttr.c gdk/gdk_atoms.c gdk/gdk_bbp.c gdk/gdk_storage.c gdk/gdk_utils.c monetdb5/extras/rapi/Tests/All monetdb5/mal/mal_session.c monetdb5/modules/mal/mal_mapi.c monetdb5/optimizer/opt_coercion.c sql/backends/monet5/LSST/Tests/lsst_htmxmatch.sql sql/backends/monet5/LSST/Tests/lsst_htmxmatch.stable.out sql/benchmarks/ATIS/Tests/select_group.stable.out sql/benchmarks/ssbm/Tests/01-explain.stable.out sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/02-explain.stable.out sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/03-explain.stable.out sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/04-explain.stable.out sql/benchmarks/ssbm/Tests/04-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/05-explain.stable.out sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/06-explain.stable.out sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/07-explain.stable.out sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/08-explain.stable.out sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/09-explain.stable.out sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/10-explain.stable.out sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/11-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/12-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/13-explain.stable.out.int128 sql/benchmarks/tpch/14.sql sql/benchmarks/tpch/Tests/01-explain.stable.out sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit sql/benchmarks/tpch/Tests/01-explain.stable.out.int128 sql/benchmarks/tpch/Tests/12-explain.stable.out sql/benchmarks/tpch/Tests/12-explain.stable.out.int128 sql/benchmarks/tpch/Tests/14-explain.stable.out.int128 sql/benchmarks/tpch/Tests/14-plan.stable.out.int128 sql/benchmarks/tpch/Tests/17-explain.stable.out sql/benchmarks/tpch/Tests/17-explain.stable.out.int128 sql/benchmarks/tpch/Tests/18-explain.stable.out sql/benchmarks/tpch/Tests/18-explain.stable.out.int128 sql/benchmarks/tpch/Tests/20-explain.stable.out sql/benchmarks/tpch/Tests/20-explain.stable.out.32bit sql/benchmarks/tpch/Tests/20-explain.stable.out.int128 sql/benchmarks/tpch/Tests/20-plan.stable.out sql/benchmarks/tpch/Tests/20-plan.stable.out.int128 sql/common/sql_types.c sql/test/BugTracker-2009/Tests/case_evaluates_all_branches.SF-2893484.stable.out sql/test/BugTracker-2010/Tests/offset_limited_32bit.SF-2950579.stable.out.oid32 sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128 sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out sql/test/BugTracker-2015/Tests/All tools/merovingian/daemon/client.c Branch: newstorage Log Message:
merged with default diffs (truncated from 3636 to 300 lines): diff --git a/clients/Tests/SQL-dump_all.stable.out.oid32.int128 b/clients/Tests/SQL-dump_all.stable.out.oid32.int128 --- a/clients/Tests/SQL-dump_all.stable.out.oid32.int128 +++ b/clients/Tests/SQL-dump_all.stable.out.oid32.int128 @@ -1625,10 +1625,10 @@ 6999 "sorted" "boolean" 1 0 7000 NULL tr 7002 "schema" "clob" 0 0 7010 NULL true 0 NULL 7003 "table" "clob" 0 0 7010 NULL true 1 NULL 7004 "count" "bigint" 64 0 7010 NULL true 2 NULL -7005 "columnsize" "hugeint" 64 0 7010 NULL true 3 NULL -7006 "heapsize" "hugeint" 64 0 7010 NULL true 4 NULL -7007 "hashes" "hugeint" 64 0 7010 NULL true 5 NULL -7008 "imprints" "hugeint" 64 0 7010 NULL true 6 NULL +7005 "columnsize" "hugeint" 128 0 7010 NULL true 3 NULL +7006 "heapsize" "hugeint" 128 0 7010 NULL true 4 NULL +7007 "hashes" "hugeint" 128 0 7010 NULL true 5 NULL +7008 "imprints" "hugeint" 128 0 7010 NULL true 6 NULL 7009 "auxiliary" "hugeint" 128 0 7010 NULL true 7 NULL 7012 "column_id" "int" 32 0 7023 NULL true 0 NULL 7013 "type" "clob" 0 0 7023 NULL true 1 NULL diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -2232,7 +2232,6 @@ void freeSymbolList(Symbol s); void freeVariable(MalBlkPtr mb, int varid); str fstrcmp0_impl(dbl *ret, str *string1, str *string2); str fstrcmp_impl(dbl *ret, str *string1, str *string2, dbl *minimum); -str function2str(MalBlkPtr mb); void garbageCollector(Client cntxt, MalBlkPtr mb, MalStkPtr stk, int flag); void garbageElement(Client cntxt, ValPtr v); str generatorRef; diff --git a/clients/mapiclient/tachograph.c b/clients/mapiclient/tachograph.c --- a/clients/mapiclient/tachograph.c +++ b/clients/mapiclient/tachograph.c @@ -122,7 +122,7 @@ addSourcePair(char *varname, char *name) if( srcmax == 0) sources = (Source *) malloc(1024 * sizeof(Source)); else - sources = (Source *) realloc(sources, srcmax+1024); + sources = (Source *) realloc((void *)sources, (srcmax+1024) * sizeof(Source)); srcmax+= 1024; } for( i=0; i< srctop; i++) diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c --- a/clients/mapilib/mapi.c +++ b/clients/mapilib/mapi.c @@ -4278,8 +4278,11 @@ mapi_query_part(MapiHdl hdl, const char char *q; if (sz < 512 && - (q = realloc(hdl->query, sz + size + 1)) != NULL) - hdl->query = strncat(q, query, size); + (q = realloc(hdl->query, sz + size + 1)) != NULL) { + strncpy(q + sz, query, size); + q[sz + size] = 0; + hdl->query = q; + } } if (mid->trace == MAPI_TRACE) { diff --git a/clients/odbc/driver/SQLBrowseConnect.c b/clients/odbc/driver/SQLBrowseConnect.c --- a/clients/odbc/driver/SQLBrowseConnect.c +++ b/clients/odbc/driver/SQLBrowseConnect.c @@ -55,8 +55,10 @@ MNDBBrowseConnect(ODBCDbc *dbc, SQLSMALLINT len = 0; char buf[256]; int n; + SQLRETURN rc; +#ifdef ODBCDEBUG int allocated = 0; - SQLRETURN rc; +#endif fixODBCstring(InConnectionString, StringLength1, SQLSMALLINT, addDbcError, dbc, return SQL_ERROR); @@ -71,32 +73,37 @@ MNDBBrowseConnect(ODBCDbc *dbc, return SQL_ERROR; } - dsn = dbc->dsn; - uid = dbc->uid; - pwd = dbc->pwd; - host = dbc->host; + dsn = dbc->dsn ? strdup(dbc->dsn) : NULL; + uid = dbc->uid ? strdup(dbc->uid) : NULL; + pwd = dbc->pwd ? strdup(dbc->pwd) : NULL; + host = dbc->host ? strdup(dbc->host) : NULL; port = dbc->port; - dbname = dbc->dbname; + dbname = dbc->dbname ? strdup(dbc->dbname) : NULL; while ((n = ODBCGetKeyAttr(&InConnectionString, &StringLength1, &key, &attr)) > 0) { if (strcasecmp(key, "dsn") == 0 && dsn == NULL) { + if (dsn) + free(dsn); dsn = attr; - allocated |= 1; } else if (strcasecmp(key, "uid") == 0 && uid == NULL) { + if (uid) + free(uid); uid = attr; - allocated |= 2; } else if (strcasecmp(key, "pwd") == 0 && pwd == NULL) { + if (pwd) + free(pwd); pwd = attr; - allocated |= 4; } else if (strcasecmp(key, "host") == 0 && host == NULL) { + if (host) + free(host); host = attr; - allocated |= 8; } else if (strcasecmp(key, "port") == 0 && port == 0) { port = atoi(attr); free(attr); } else if (strcasecmp(key, "database") == 0 && dbname == NULL) { + if (dbname) + free(dbname); dbname = attr; - allocated |= 16; #ifdef ODBCDEBUG } else if (strcasecmp(key, "logfile") == 0 && getenv("ODBCDEBUG") == NULL) { @@ -104,7 +111,7 @@ MNDBBrowseConnect(ODBCDbc *dbc, if (ODBCdebug) free((void *) ODBCdebug); /* discard const */ ODBCdebug = attr; - allocated |= 32; + allocated = 1; #endif } else free(attr); @@ -120,7 +127,6 @@ MNDBBrowseConnect(ODBCDbc *dbc, uid = strdup(buf); if (uid == NULL) goto nomem; - allocated |= 2; } } if (pwd == NULL) { @@ -129,7 +135,6 @@ MNDBBrowseConnect(ODBCDbc *dbc, pwd = strdup(buf); if (pwd == NULL) goto nomem; - allocated |= 4; } } if (host == NULL) { @@ -138,7 +143,6 @@ MNDBBrowseConnect(ODBCDbc *dbc, host = strdup(buf); if (host == NULL) goto nomem; - allocated |= 8; } } if (port == 0) { @@ -153,11 +157,10 @@ MNDBBrowseConnect(ODBCDbc *dbc, dbname = strdup(buf); if (dbname == NULL) goto nomem; - allocated |= 16; } } #ifdef ODBCDEBUG - if ((allocated & 32) == 0 && getenv("ODBCDEBUG") == NULL) { + if (!allocated && getenv("ODBCDEBUG") == NULL) { /* if not set from InConnectionString argument * or environment, look in profile */ n = SQLGetPrivateProfileString(dsn, "logfile", "", buf, sizeof(buf), "odbc.ini"); @@ -229,15 +232,15 @@ MNDBBrowseConnect(ODBCDbc *dbc, } bailout: - if (allocated & 1) + if (dsn) free(dsn); - if (allocated & 2) + if (uid) free(uid); - if (allocated & 4) + if (pwd) free(pwd); - if (allocated & 8) + if (host) free(host); - if (allocated & 16) + if (dbname) free(dbname); return rc; diff --git a/clients/odbc/driver/SQLGetDescField.c b/clients/odbc/driver/SQLGetDescField.c --- a/clients/odbc/driver/SQLGetDescField.c +++ b/clients/odbc/driver/SQLGetDescField.c @@ -126,8 +126,12 @@ MNDBGetDescField(ODBCDesc *desc, WriteData(ValuePtr, rec->sql_desc_concise_type, SQLSMALLINT); return SQL_SUCCESS; case SQL_DESC_DATA_PTR: /* SQLPOINTER */ +#ifndef STATIC_CODE_ANALYSIS + /* Coverity doesn't like the debug print in WriteData, + * so we hide this whole thing */ if (!isIRD(desc)) WriteData(ValuePtr, rec->sql_desc_data_ptr, SQLPOINTER); +#endif return SQL_SUCCESS; case SQL_DESC_DATETIME_INTERVAL_CODE: /* SQLSMALLINT */ WriteData(ValuePtr, rec->sql_desc_datetime_interval_code, SQLSMALLINT); diff --git a/clients/odbc/driver/SQLGetInfo.c b/clients/odbc/driver/SQLGetInfo.c --- a/clients/odbc/driver/SQLGetInfo.c +++ b/clients/odbc/driver/SQLGetInfo.c @@ -1677,6 +1677,7 @@ SQLGetInfoW(SQLHDBC ConnectionHandle, if (ptr != InfoValuePtr) { if (rc == SQL_SUCCESS_WITH_INFO) { clearDbcErrors(dbc); + free(ptr); ptr = malloc(++n); /* add one for NULL byte */ if (ptr == NULL) { /* Memory allocation error */ diff --git a/clients/odbc/driver/SQLGetStmtAttr.c b/clients/odbc/driver/SQLGetStmtAttr.c --- a/clients/odbc/driver/SQLGetStmtAttr.c +++ b/clients/odbc/driver/SQLGetStmtAttr.c @@ -41,12 +41,16 @@ MNDBGetStmtAttr(ODBCStmt *stmt, * StringLengthPtr */ switch (Attribute) { +#ifndef STATIC_CODE_ANALYSIS + /* Coverity doesn't like the debug print in WriteData, so we + * hide this whole thing */ case SQL_ATTR_APP_PARAM_DESC: /* SQLHANDLE */ WriteData(ValuePtr, stmt->ApplParamDescr, SQLHANDLE); return SQL_SUCCESS; case SQL_ATTR_APP_ROW_DESC: /* SQLHANDLE */ WriteData(ValuePtr, stmt->ApplRowDescr, SQLHANDLE); return SQL_SUCCESS; +#endif case SQL_ATTR_ASYNC_ENABLE: /* SQLULEN */ /* SQL_ASYNC_ENABLE */ WriteData(ValuePtr, SQL_ASYNC_ENABLE_OFF, SQLULEN); @@ -65,12 +69,16 @@ MNDBGetStmtAttr(ODBCStmt *stmt, /* SQL_CURSOR_TYPE */ WriteData(ValuePtr, stmt->cursorType, SQLULEN); break; +#ifndef STATIC_CODE_ANALYSIS + /* Coverity doesn't like the debug print in WriteData, so we + * hide this whole thing */ case SQL_ATTR_IMP_PARAM_DESC: /* SQLHANDLE */ WriteData(ValuePtr, stmt->ImplParamDescr, SQLHANDLE); return SQL_SUCCESS; case SQL_ATTR_IMP_ROW_DESC: /* SQLHANDLE */ WriteData(ValuePtr, stmt->ImplRowDescr, SQLHANDLE); return SQL_SUCCESS; +#endif case SQL_ATTR_MAX_LENGTH: /* SQLULEN */ /* SQL_MAX_LENGTH */ WriteData(ValuePtr, 0, SQLULEN); diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c --- a/gdk/gdk_atoms.c +++ b/gdk/gdk_atoms.c @@ -894,8 +894,6 @@ fltFromStr(const char *src, int *len, fl errno = 0; f = strtof(src, &pe); p = pe; - while (GDKisspace(*p)) - p++; n = (int) (p - src); if (n == 0 || (errno == ERANGE && (f < -1 || f > 1)) #ifdef INFINITY @@ -922,8 +920,11 @@ fltFromStr(const char *src, int *len, fl { **dst = flt_nil; /* default return value is nil */ n = 0; - } else + } else { + while (src[n] && GDKisspace(src[n])) + n++; **dst = (flt) f; + } } return n; } diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -1501,7 +1501,7 @@ BBPdir(int cnt, bat *subcommit) } if (fclose(fp) == EOF) { GDKsyserror("BBPdir: Closing BBP.dir file failed\n"); - goto bailout; + return -1; } IODEBUG fprintf(stderr, "#BBPdir end\n"); diff --git a/gdk/gdk_storage.c b/gdk/gdk_storage.c --- a/gdk/gdk_storage.c +++ b/gdk/gdk_storage.c @@ -435,7 +435,13 @@ GDKload(int farmid, const char *nme, con * only accepts int */ for (n_expected = (ssize_t) size; n_expected > 0; n_expected -= n) { n = read(fd, dst, (unsigned) MIN(1 << 30, n_expected)); +#ifndef STATIC_CODE_ANALYSIS + /* Coverity doesn't seem to + * recognize that we're just + * printing the value of ptr, _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list