Changeset: 2219a9dda820 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2219a9dda820 Added Files: sql/test/BugTracker-2017/Tests/corr_coersion.Bug-6287.sql sql/test/BugTracker-2017/Tests/corr_coersion.Bug-6287.stable.err sql/test/BugTracker-2017/Tests/corr_coersion.Bug-6287.stable.out sql/test/BugTracker-2017/Tests/sqlitelogictest-aggregation-distinct.Bug-6411.sql sql/test/BugTracker-2017/Tests/sqlitelogictest-having-with-in.Bug-6410.sql sql/test/BugTracker-2017/Tests/sqlitelogictest-having-with-in.Bug-6410.stable.err sql/test/BugTracker-2017/Tests/sqlitelogictest-having-with-in.Bug-6410.stable.out sql/test/BugTracker-2017/Tests/sqlitelogictest-having-with-not-in.Bug-6409.sql sql/test/BugTracker-2017/Tests/sqlitelogictest-having-with-not-in.Bug-6409.stable.err sql/test/BugTracker-2017/Tests/sqlitelogictest-having-with-not-in.Bug-6409.stable.out Modified Files: buildtools/autogen/autogen/msc.py clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out clients/mapiclient/tomograph.c clients/odbc/driver/ODBCConvert.c common/stream/stream_socket.h configure.ag gdk/gdk_aggr.c gdk/gdk_posix.c gdk/gdk_private.h gdk/gdk_utils.c monetdb5/extras/rapi/Makefile.ag monetdb5/mal/mal_instruction.c monetdb5/mal/mal_instruction.h monetdb5/modules/atoms/json.c monetdb5/modules/kernel/mmath.h monetdb5/modules/mal/bitcandidates.c monetdb5/modules/mal/orderidx.c monetdb5/modules/mal/sysmon.c monetdb5/optimizer/opt_bitcandidates.c monetdb5/optimizer/opt_garbageCollector.c monetdb5/optimizer/opt_jit.c monetdb5/optimizer/opt_jit.h monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_prelude.h monetdb5/optimizer/opt_pushselect.c sql/backends/monet5/UDF/pyapi/emit.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql.h sql/backends/monet5/sql_cast.h sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_execute.c sql/backends/monet5/sql_scenario.h sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_statistics.c sql/backends/monet5/sql_upgrades.c sql/backends/monet5/vaults/bam/bam_db_interface.h sql/backends/monet5/vaults/bam/bam_export.h sql/backends/monet5/vaults/bam/bam_loader.h sql/backends/monet5/vaults/fits/fits.c sql/backends/monet5/vaults/netcdf/netcdf.c sql/backends/monet5/vaults/shp/shp.c sql/backends/monet5/wlr.c sql/server/Makefile.ag sql/server/rel_dump.c sql/server/rel_optimizer.c sql/server/rel_rel.c sql/server/rel_select.c sql/storage/bat/bat_storage.c sql/storage/store.c sql/test/BugTracker-2017/Tests/All sql/test/mergetables/Tests/part-elim.stable.out sql/test/remote/Tests/partition_elim.stable.out testing/Mtimeout.c Branch: compressedcandidates Log Message:
Merge with default diffs (truncated from 4071 to 300 lines): diff --git a/buildtools/autogen/autogen/msc.py b/buildtools/autogen/autogen/msc.py --- a/buildtools/autogen/autogen/msc.py +++ b/buildtools/autogen/autogen/msc.py @@ -98,7 +98,7 @@ def msc_assignment(fd, var, values, msc) o = "" for v in values: o = o + " " + v.replace('/', '\\') - if var[0] != '@': + if var[0] != '@' and '.' not in var: fd.write("%s = %s\n" % (var, o)) def msc_cflags(fd, var, values, msc): diff --git a/clients/Tests/MAL-signatures.stable.out b/clients/Tests/MAL-signatures.stable.out --- a/clients/Tests/MAL-signatures.stable.out +++ b/clients/Tests/MAL-signatures.stable.out @@ -7378,6 +7378,8 @@ Ready. [ "calc", "xor", "pattern calc.xor(v1:int, v2:int):int ", "CMDvarXOR;", "Return V1 XOR V2" ] [ "calc", "xor", "pattern calc.xor(v1:lng, v2:lng):lng ", "CMDvarXOR;", "Return V1 XOR V2" ] [ "calc", "xor", "pattern calc.xor(v1:sht, v2:sht):sht ", "CMDvarXOR;", "Return V1 XOR V2" ] +[ "candidates", "compress", "pattern candidates.compress(b:bat[:oid]):bat[:oid] ", "BCLcompress;", "Compress the bat into a bitvector" ] +[ "candidates", "decompress", "pattern candidates.decompress(b:bat[:oid]):bat[:oid] ", "BCLdecompress;", "Compress the bat into a bitvector" ] [ "clients", "addUser", "pattern clients.addUser(nme:str, pw:str):oid ", "CLTaddUser;", "Allow user with password access to the given scenarios" ] [ "clients", "backendsum", "command clients.backendsum(pw:str):str ", "CLTbackendsum;", "Return hex string representation of the currently used hash of the given string" ] [ "clients", "changePassword", "pattern clients.changePassword(old:str, new:str):void ", "CLTchangePassword;", "Change the password for the current user" ] @@ -8140,6 +8142,8 @@ Ready. [ "oltp", "table", "pattern oltp.table() (start:bat[:timestamp], usr:bat[:str], unit:bat[:int], cnt:bat[:int]) ", "OLTPtable;", "Show status of lock table" ] [ "optimizer", "aliases", "pattern optimizer.aliases():str ", "OPTwrapper;", "" ] [ "optimizer", "aliases", "pattern optimizer.aliases(mod:str, fcn:str):str ", "OPTwrapper;", "Alias removal optimizer" ] +[ "optimizer", "bitcandidates", "pattern optimizer.bitcandidates():str ", "OPTwrapper;", "" ] +[ "optimizer", "bitcandidates", "pattern optimizer.bitcandidates(mod:str, fcn:str):str ", "OPTwrapper;", "Handle bitcompressed candidate lists" ] [ "optimizer", "candidates", "pattern optimizer.candidates():str ", "OPTwrapper;", "" ] [ "optimizer", "candidates", "pattern optimizer.candidates(mod:str, fcn:str):str ", "OPTwrapper;", "Mark candidate list variables" ] [ "optimizer", "coercions", "pattern optimizer.coercions():str ", "OPTwrapper;", "" ] diff --git a/clients/Tests/MAL-signatures.stable.out.int128 b/clients/Tests/MAL-signatures.stable.out.int128 --- a/clients/Tests/MAL-signatures.stable.out.int128 +++ b/clients/Tests/MAL-signatures.stable.out.int128 @@ -9724,6 +9724,8 @@ Ready. [ "calc", "xor", "pattern calc.xor(v1:int, v2:int):int ", "CMDvarXOR;", "Return V1 XOR V2" ] [ "calc", "xor", "pattern calc.xor(v1:lng, v2:lng):lng ", "CMDvarXOR;", "Return V1 XOR V2" ] [ "calc", "xor", "pattern calc.xor(v1:sht, v2:sht):sht ", "CMDvarXOR;", "Return V1 XOR V2" ] +[ "candidates", "compress", "pattern candidates.compress(b:bat[:oid]):bat[:oid] ", "BCLcompress;", "Compress the bat into a bitvector" ] +[ "candidates", "decompress", "pattern candidates.decompress(b:bat[:oid]):bat[:oid] ", "BCLdecompress;", "Compress the bat into a bitvector" ] [ "clients", "addUser", "pattern clients.addUser(nme:str, pw:str):oid ", "CLTaddUser;", "Allow user with password access to the given scenarios" ] [ "clients", "backendsum", "command clients.backendsum(pw:str):str ", "CLTbackendsum;", "Return hex string representation of the currently used hash of the given string" ] [ "clients", "changePassword", "pattern clients.changePassword(old:str, new:str):void ", "CLTchangePassword;", "Change the password for the current user" ] @@ -10502,6 +10504,8 @@ Ready. [ "oltp", "table", "pattern oltp.table() (start:bat[:timestamp], usr:bat[:str], unit:bat[:int], cnt:bat[:int]) ", "OLTPtable;", "Show status of lock table" ] [ "optimizer", "aliases", "pattern optimizer.aliases():str ", "OPTwrapper;", "" ] [ "optimizer", "aliases", "pattern optimizer.aliases(mod:str, fcn:str):str ", "OPTwrapper;", "Alias removal optimizer" ] +[ "optimizer", "bitcandidates", "pattern optimizer.bitcandidates():str ", "OPTwrapper;", "" ] +[ "optimizer", "bitcandidates", "pattern optimizer.bitcandidates(mod:str, fcn:str):str ", "OPTwrapper;", "Handle bitcompressed candidate lists" ] [ "optimizer", "candidates", "pattern optimizer.candidates():str ", "OPTwrapper;", "" ] [ "optimizer", "candidates", "pattern optimizer.candidates(mod:str, fcn:str):str ", "OPTwrapper;", "Mark candidate list variables" ] [ "optimizer", "coercions", "pattern optimizer.coercions():str ", "OPTwrapper;", "" ] 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 @@ -772,6 +772,8 @@ str BATXMLstr2xml(bat *ret, const bat *b str BATXMLxml2str(bat *ret, const bat *bid); str BATXMLxmltext(bat *ret, const bat *bid); str BATXMLxquery(bat *ret, const bat *bid, const char *const *expr); +str BCLcompress(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); +str BCLdecompress(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str BKCappend_cand_force_wrap(bat *r, const bat *bid, const bat *uid, const bat *sid, const bit *force); str BKCappend_cand_wrap(bat *r, const bat *bid, const bat *uid, const bat *sid); str BKCappend_force_wrap(bat *r, const bat *bid, const bat *uid, const bit *force); @@ -1552,6 +1554,7 @@ str OLTPreset(Client cntxt, MalBlkPtr mb str OLTPtable(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); void OPTaliasRemap(InstrPtr p, int *alias); str OPTaliasesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); +str OPTbitcandidatesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str OPTcandidatesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str OPTcoercionImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str OPTcommonTermsImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); @@ -1948,7 +1951,6 @@ str alter_tableRef; str alter_triggerRef; str alter_typeRef; str alter_userRef; -str alter_userRef; str alter_viewRef; str andRef; str antijoinRef; @@ -1993,6 +1995,7 @@ str bstream_read_wrapwrap(int *res, Bstr str calcRef; str callMAL(Client cntxt, MalBlkPtr mb, MalStkPtr *glb, ValPtr argv[], char debug); str callString(Client c, str s, int listing); +str candidatesRef; str catalogRef; void chkDeclarations(MalBlkPtr mb); void chkFlow(MalBlkPtr mb); @@ -2018,6 +2021,7 @@ str commitRef; str compileAllOptimizers(Client cntxt); str compileOptimizer(Client cntxt, const char *name); str compileString(Symbol *fcn, Client c, str s); +str compressRef; str connectRef; str convertConstant(malType type, ValPtr vr); InstrPtr copyInstruction(InstrPtr p); @@ -2040,7 +2044,6 @@ str create_tableRef; str create_triggerRef; str create_typeRef; str create_userRef; -str create_userRef; str create_viewRef; str crossRef; str dataflowRef; @@ -2053,6 +2056,7 @@ ssize_t daytime_tz_fromstr(const char *b str dblRef; str deblockdataflow(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); void debugFunction(stream *fd, MalBlkPtr mb, MalStkPtr stk, int flg, int first, int size); +str decompressRef; int defConstant(MalBlkPtr mb, int type, ValPtr cst); str defineRef; void delArgument(InstrPtr p, int varid); @@ -2076,7 +2080,6 @@ str drop_tableRef; str drop_triggerRef; str drop_typeRef; str drop_userRef; -str drop_userRef; str drop_viewRef; void dumpExceptionsToStream(stream *out, str msg); void dumpModules(stream *out); @@ -2188,7 +2191,6 @@ str identityRef; str ifthenelseRef; str ilikeRef; str ilikeselectRef; -str ilikeselectRef; str ilikethetaselectRef; str ilikeuselectRef; void initHeartbeat(void); @@ -2246,7 +2248,6 @@ str levenshteinbasic2_impl(int *result, str levenshteinbasic_impl(int *result, str *s, str *t); str likeRef; str likeselectRef; -str likeselectRef; str likethetaselectRef; str likeuselectRef; void listModules(stream *out, Module s); @@ -2456,7 +2457,6 @@ str remapRef; str remoteRef; void removeInstruction(MalBlkPtr mb, InstrPtr p); void removeInstructionBlock(MalBlkPtr mb, int pc, int cnt); -void renameVariable(MalBlkPtr mb, int i, str pattern, int newid); str rename_userRef; str replaceRef; str replicatorRef; @@ -2522,7 +2522,6 @@ str sinkRef; void slash_2_dir_sep(str fname); str sliceRef; str sortRef; -str sortRef; str sortReverseRef; str soundex_impl(str *res, str *Name); str sqlRef; diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c --- a/clients/mapiclient/tomograph.c +++ b/clients/mapiclient/tomograph.c @@ -953,49 +953,23 @@ showio(void) static void fprintf_time(FILE *f, lng time) { - int TME = TME_DD|TME_HH|TME_MM|TME_SS|TME_MS|TME_US; - int tail = 0; - const char *fmt = NULL; - - if (TME & TME_DD && (tail || time >= US_DD)) { - fmt = LLFMT"%s"; - fprintf(f, fmt, time / US_DD, " d "); - time %= US_DD; - TME &= TME_HH; - tail = 1; - } - if (TME & TME_HH && (tail || time >= US_HH)) { - fmt = tail ? "%02d%s" : "%d%s"; - fprintf(f, fmt, (int) (time / US_HH), " h "); - time %= US_HH; - TME &= TME_MM; - tail = 1; - } - if (TME & TME_MM && (tail || time >= US_MM)) { - fmt = tail ? "%02d%s" : "%d%s"; - fprintf(f, fmt, (int) (time / US_MM), " m "); - time %= US_MM; - TME &= TME_SS; - tail = 1; - } - if (TME & TME_SS && (tail || time >= US_SS)) { - fmt = tail ? "%02d%s" : "%d%s"; - fprintf(f, fmt, (int) (time / US_SS), (TME & TME_MS) ? "." : " s "); - time %= US_SS; - TME &= TME_MS; - tail = 1; - } - if (TME & TME_MS && (tail || time >= US_MS)) { - fmt = tail ? "%03d%s" : "%d%s"; - fprintf(f, fmt, (int) (time / US_MS), (TME & TME_US) ? "." : " s "); - time %= US_MS; - TME &= TME_US; - tail = 1; - } - if (TME & TME_US) { - fmt = tail ? "%03d%s" : "%d%s"; - fprintf(f, fmt, (int) time, tail ? " ms " : " us "); - } + if (time >= US_DD) + fprintf(f, LLFMT " d %02d h ", time / US_DD, + (int) ((time % US_DD) / US_HH)); + else if (time >= US_HH) + fprintf(f, "%d h %02d m ", (int) (time / US_HH), + (int) ((time % US_HH) / US_MM)); + else if (time >= US_MM) + fprintf(f, "%d m %02d s ", (int) (time / US_MM), + (int) ((time % US_MM) / US_SS)); + else if (time >= US_SS) + fprintf(f, "%d.%03d s ", (int) (time / US_SS), + (int) ((time % US_SS) / US_MS)); + else if (time >= US_MS) + fprintf(f, "%d.%03d ms ", (int) (time / US_MS), + (int) ((time % US_MS))); + else + fprintf(f, "%d us ", (int) time); } /* produce a legenda image for the color map */ @@ -1420,7 +1394,7 @@ update(char *line, EventRecord *ev) if (ev->state >= MDB_PING ) { if (cpus == 0 && ev->state == MDB_PING) { char *s; - if( (s= ev->stmt,'[')) + if( (s= strchr(ev->stmt,'[')) != NULL) s++; else s = ev->stmt; while (s && isspace((unsigned char) *s)) diff --git a/clients/odbc/driver/ODBCConvert.c b/clients/odbc/driver/ODBCConvert.c --- a/clients/odbc/driver/ODBCConvert.c +++ b/clients/odbc/driver/ODBCConvert.c @@ -1215,6 +1215,7 @@ ODBCFetch(ODBCStmt *stmt, SQLPOINTER origptr; SQLLEN origbuflen; SQLLEN *origlenp; + SQLLEN sz; if (buflen < 0) { /* Invalid string or buffer length */ @@ -1251,8 +1252,6 @@ ODBCFetch(ODBCStmt *stmt, lenp = NULL; } switch (sql_type) { - SQLLEN sz; - default: case SQL_CHAR: case SQL_VARCHAR: diff --git a/common/stream/stream_socket.h b/common/stream/stream_socket.h --- a/common/stream/stream_socket.h +++ b/common/stream/stream_socket.h @@ -9,6 +9,9 @@ /* This file contains the prototype declarations of the stream * functions that need special include files (sockets) */ +#ifndef _STREAM_SOCKET_H_ +#define _STREAM_SOCKET_H_ + #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif @@ -27,3 +30,5 @@ stream_export stream *socket_rstream(SOC stream_export stream *socket_wstream(SOCKET socket, const char *name); stream_export stream *socket_rastream(SOCKET socket, const char *name); stream_export stream *socket_wastream(SOCKET socket, const char *name); + +#endif /* _STREAM_SOCKET_H_ */ diff --git a/configure.ag b/configure.ag --- a/configure.ag +++ b/configure.ag @@ -625,25 +625,15 @@ AS_VAR_IF([enable_strict], [yes], [ MCHECK_ADD_FLAG([-Wlogical-op]) MCHECK_ADD_FLAG([-Wduplicated-cond]) MCHECK_ADD_FLAG([-Wduplicated-branches]) - MCHECK_ADD_FLAG([-Wlogical-op]) MCHECK_ADD_FLAG([-Wrestrict]) -dnl MCHECK_ADD_FLAG([-Wnull-dereference]) - MCHECK_ADD_FLAG([-Wjump-misses-init]) -dnl MCHECK_ADD_FLAG([-Wshadow]) - MCHECK_ADD_FLAG([-Wformat=2]) + MCHECK_ADD_FLAG([-Wnested-externs]) - # With clang 2.8, 3.3, 5.0 (no other tested) and gcc < 4.5 - # (tested 3.4.6, 4.2.1, 4.3.2, 4.4.4, 4.4.5, 4.5.1, 4.5.2), - # "-Wunreachable-code" triggers numerous "will never be - # executed" (at least) in our stream code, mostly (if - # not all) false positives, though, as well as in - # YACC/BISON-generated code; thus, we do not use - # "-Wunreachable-code" with clang and gcc < 4.5 . - # At the same time, Apple deprecated OpenSSL in favour of - # their own CommonCrypto API. We don't mind about that. + # We can deal with -Wunrechable-code on modern + # compilers, but FreeBSD's clang (3.4.1) is too old. + # We need a version that understands the DISABLES + # CODE comment that is in the code at various places. _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list