Changeset: 91827c387520 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=91827c387520 Removed Files: monetdb5/optimizer/opt_qep.c monetdb5/optimizer/opt_qep.h Modified Files: MonetDB.spec clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out clients/Tests/malcheck.sh gdk/gdk_system.c monetdb5/extras/rapi/rapi.c monetdb5/mal/mal_builder.c monetdb5/mal/mal_client.c monetdb5/mal/mal_import.c monetdb5/mal/mal_listing.c monetdb5/mal/mal_profiler.c monetdb5/mal/mal_recycle.c monetdb5/mal/mal_resolve.c monetdb5/mal/mal_resource.c monetdb5/mal/mal_resource.h monetdb5/mal/mal_runtime.c monetdb5/modules/atoms/json.c monetdb5/modules/atoms/str.c monetdb5/modules/kernel/batstr.c monetdb5/modules/mal/batExtensions.c monetdb5/modules/mal/batExtensions.h monetdb5/modules/mal/inspect.c monetdb5/modules/mal/mal_io.c monetdb5/modules/mal/sysmon.c monetdb5/modules/mal/tablet.c monetdb5/modules/mal/tokenizer.c monetdb5/optimizer/Makefile.ag monetdb5/optimizer/opt_mergetable.c monetdb5/optimizer/opt_pushselect.c monetdb5/optimizer/opt_wrapper.c monetdb5/optimizer/optimizer.mal Branch: default Log Message:
Merge with Jun2016 branch. diffs (truncated from 1707 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -9,8 +9,10 @@ %define bits 32 %else %define bits 64 +%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7 %define with_int128=1 %endif +%endif # only add .oidXX suffix if oid size differs from bit size %if %{bits} == 64 && %{?oid32:1}%{!?oid32:0} @@ -592,7 +594,7 @@ Requires: %{name}-client%{?_isa} = %{ver Obsoletes: MonetDB5-server-rdf %if (0%{?fedora} >= 22) Recommends: %{name}-SQL-server5%{?_isa} = %{version}-%{release} -%if %{bits} == 64 +%if %{?with_int128:1}%{!?with_int128:0} Recommends: MonetDB5-server-hugeint%{?_isa} = %{version}-%{release} %endif Suggests: %{name}-client%{?_isa} = %{version}-%{release} @@ -653,7 +655,7 @@ fi %exclude %{_libdir}/monetdb5/rapi.mal %endif %exclude %{_libdir}/monetdb5/sql*.mal -%if %{bits} == 64 +%if %{?with_int128:1}%{!?with_int128:0} %exclude %{_libdir}/monetdb5/*_hge.mal %exclude %{_libdir}/monetdb5/autoload/*_hge.mal %endif @@ -692,7 +694,7 @@ fi %docdir %{_datadir}/doc/MonetDB %{_datadir}/doc/MonetDB/* -%if %{bits} == 64 +%if %{?with_int128:1}%{!?with_int128:0} %package -n MonetDB5-server-hugeint Summary: MonetDB - 128-bit integer support for MonetDB5-server Group: Application/Databases @@ -747,7 +749,7 @@ Requires: %{_bindir}/systemd-tmpfiles Obsoletes: MonetDB-SQL-devel Obsoletes: %{name}-SQL %if (0%{?fedora} >= 22) -%if %{bits} == 64 +%if %{?with_int128:1}%{!?with_int128:0} Recommends: %{name}-SQL-server5-hugeint%{?_isa} = %{version}-%{release} %endif Suggests: %{name}-client%{?_isa} = %{version}-%{release} @@ -800,7 +802,7 @@ systemd-tmpfiles --create %{_sysconfdir} %endif %{_libdir}/monetdb5/createdb/*.sql %{_libdir}/monetdb5/sql*.mal -%if %{bits} == 64 +%if %{?with_int128:1}%{!?with_int128:0} %exclude %{_libdir}/monetdb5/createdb/*_hge.sql %exclude %{_libdir}/monetdb5/sql*_hge.mal %endif @@ -810,7 +812,7 @@ systemd-tmpfiles --create %{_sysconfdir} %docdir %{_datadir}/doc/MonetDB-SQL %{_datadir}/doc/MonetDB-SQL/* -%if %{bits} == 64 +%if %{?with_int128:1}%{!?with_int128:0} %package SQL-server5-hugeint Summary: MonetDB5 128 bit integer (hugeint) support for SQL Group: Applications/Databases @@ -966,7 +968,7 @@ developer, but if you do want to test, t --with-ant=no \ --with-bz2=yes \ --with-curl=yes \ - --with-gdal=yes \ + --with-gdal=%{?with_lidar:yes}%{!?with_lidar:no} \ --with-geos=%{?with_geos:yes}%{!?with_geos:no} \ --with-java=no \ --with-liblas=%{?with_lidar:yes}%{!?with_lidar:no} \ 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 @@ -31335,12 +31335,6 @@ comment Handle simple type coercions pattern optimizer.coercions():str address OPTwrapper; -pattern optimizer.dumpQEP(mod:str,fcn:str):str -address OPTwrapper; -comment Produce an indented tree visualisation - -pattern optimizer.dumpQEP():void -address OPTwrapper; pattern optimizer.derivePath(mod:str,fcn:str):str address OPTwrapper; comment Join path constructor 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 @@ -40756,12 +40756,6 @@ comment Handle simple type coercions pattern optimizer.coercions():str address OPTwrapper; -pattern optimizer.dumpQEP(mod:str,fcn:str):str -address OPTwrapper; -comment Produce an indented tree visualisation - -pattern optimizer.dumpQEP():void -address OPTwrapper; pattern optimizer.derivePath(mod:str,fcn:str):str address OPTwrapper; comment Join path constructor 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 @@ -913,7 +913,6 @@ str CMDBATimprints(void *ret, bat *bid); str CMDBATimprintsize(lng *ret, bat *bid); str CMDBATnew(Client cntxt, MalBlkPtr m, MalStkPtr s, InstrPtr p); str CMDBATnewColumn(Client cntxt, MalBlkPtr m, MalStkPtr s, InstrPtr p); -str CMDBATnewDerived(Client cntxt, MalBlkPtr m, MalStkPtr s, InstrPtr p); str CMDBATnew_persistent(Client cntxt, MalBlkPtr m, MalStkPtr s, InstrPtr p); str CMDBATpartition(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDBATpartition2(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); @@ -1540,7 +1539,6 @@ int OPTconstantsImplementation(Client cn int OPTcostModelImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); int OPTdataflowImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); int OPTdeadcodeImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -int OPTdumpQEPImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); int OPTevaluateImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); int OPTfactorizeImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); int OPTgarbageCollectorImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); diff --git a/gdk/gdk_system.c b/gdk/gdk_system.c --- a/gdk/gdk_system.c +++ b/gdk/gdk_system.c @@ -546,7 +546,7 @@ MT_create_thread(MT_Id *t, void (*f) (vo #ifdef HAVE_PTHREAD_SIGMASK MT_thread_sigmask(&orig_mask, NULL); #endif - return ret; + return ret ? -1 : 0; } void diff --git a/monetdb5/extras/rapi/rapi.c b/monetdb5/extras/rapi/rapi.c --- a/monetdb5/extras/rapi/rapi.c +++ b/monetdb5/extras/rapi/rapi.c @@ -394,6 +394,7 @@ str RAPIeval(Client cntxt, MalBlkPtr mb, } msg = createException(MAL, "rapi.eval", "Error running R expression: %s", errormsg); + free(errormsg); goto wrapup; } diff --git a/monetdb5/mal/mal_builder.c b/monetdb5/mal/mal_builder.c --- a/monetdb5/mal/mal_builder.c +++ b/monetdb5/mal/mal_builder.c @@ -361,6 +361,7 @@ pushHge(MalBlkPtr mb, InstrPtr q, hge va cst.vtype= TYPE_hge; cst.val.hval= val; + cst.len = 0; _t = defConstant(mb,TYPE_hge,&cst); return pushArgument(mb, q, _t); } diff --git a/monetdb5/mal/mal_client.c b/monetdb5/mal/mal_client.c --- a/monetdb5/mal/mal_client.c +++ b/monetdb5/mal/mal_client.c @@ -251,7 +251,11 @@ MCinitClientRecord(Client c, oid user, b c->exception_buf_initialized = 0; c->error_row = c->error_fld = c->error_msg = c->error_input = NULL; #ifndef HAVE_EMBEDDED /* no authentication in embedded mode */ - (void) AUTHgetUsername(&c->username, c); + { + str msg = AUTHgetUsername(&c->username, c); + if (msg) /* shouldn't happen */ + GDKfree(msg); + } #endif MT_sema_init(&c->s, 0, "Client->s"); return c; @@ -608,15 +612,13 @@ MCvalid(Client tc) str PROFinitClient(Client c){ (void) c; - startProfiler(); - return MAL_SUCCEED; + return startProfiler(); } str PROFexitClient(Client c){ (void) c; - stopProfiler(); - return MAL_SUCCEED; + return stopProfiler(); } diff --git a/monetdb5/mal/mal_import.c b/monetdb5/mal/mal_import.c --- a/monetdb5/mal/mal_import.c +++ b/monetdb5/mal/mal_import.c @@ -292,12 +292,17 @@ evalFile(Client c, str fname, int listin MSinitClientPrg(c, "user", "main"); /* re-initialize context */ MCpushClientInput(c, bstream_create(fd, 128 * BLOCK), c->listing, ""); msg = runScenario(c); + if (msg != MAL_SUCCEED) { + dumpExceptionsToStream(c->fdout, msg); + GDKfree(msg); + } } filename = p + 1; } fd = malOpenSource(filename); if (fd == 0 || mnstr_errnr(fd) == MNSTR_OPEN_ERROR) { - if( fd == 0) mnstr_destroy(fd); + if (fd) + mnstr_destroy(fd); msg = createException(MAL,"mal.eval", "WARNING: could not open file: %s\n", filename); } else { c->srcFile = filename; diff --git a/monetdb5/mal/mal_listing.c b/monetdb5/mal/mal_listing.c --- a/monetdb5/mal/mal_listing.c +++ b/monetdb5/mal/mal_listing.c @@ -76,7 +76,7 @@ renderTerm(MalBlkPtr mb, MalStkPtr stk, if( strcmp(cv,"nil") == 0){ strcat(buf+len,cv); len += strlen(buf+len); - if( cv) GDKfree(cv); + GDKfree(cv); showtype =getColumnType(getVarType(mb,varid)) > TYPE_str || ((isVarUDFtype(mb,varid) || isVarTypedef(mb,varid)) && isVarConstant(mb,varid)) || isaBatType(getVarType(mb,varid)); } else{ diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c --- a/monetdb5/mal/mal_profiler.c +++ b/monetdb5/mal/mal_profiler.c @@ -198,10 +198,10 @@ renderProfilerEvent(MalBlkPtr mb, MalStk stmtq = mal_quote(c, strlen(c)); if (stmtq != NULL) { logadd("\"stmt\":\"%s\",%s", stmtq,prettify); - //GDKfree(stmtq); + GDKfree(stmtq); } } - //GDKfree(stmt); + GDKfree(stmt); // ship the beautified version as well @@ -1045,9 +1045,10 @@ static void profilerHeartbeat(void *dumm void setHeartbeat(int delay) { - if (hbthread && delay < 0 ){ + if (delay < 0 ){ ATOMIC_SET(hbrunning, 0, mal_beatLock); - MT_join_thread(hbthread); + if (hbthread) + MT_join_thread(hbthread); return; } if ( delay > 0 && delay <= 10) diff --git a/monetdb5/mal/mal_recycle.c b/monetdb5/mal/mal_recycle.c --- a/monetdb5/mal/mal_recycle.c +++ b/monetdb5/mal/mal_recycle.c @@ -1100,12 +1100,14 @@ RECYCLEdumpInternal(stream *s) /* and dump the statistics per instruction*/ mnstr_printf(s,"# CL\t lru\t\tcnt\t ticks\t rd\t wr\t Instr\n"); for(i=0; i< recycleBlk->stop; i++){ + str inst = instruction2str(recycleBlk,0,getInstrPtr(recycleBlk,i),0); mnstr_printf(s,"#%d\t%d\t"LLFMT"\t"LLFMT"\t"LLFMT"\t%s\n", i, recycleBlk->stmt[i]->calls, recycleBlk->stmt[i]->ticks, recycleBlk->stmt[i]->rbytes, recycleBlk->stmt[i]->wbytes, - instruction2str(recycleBlk,0,getInstrPtr(recycleBlk,i),0)); + inst); + GDKfree(inst); } #else (void) i; diff --git a/monetdb5/mal/mal_resolve.c b/monetdb5/mal/mal_resolve.c --- a/monetdb5/mal/mal_resolve.c +++ b/monetdb5/mal/mal_resolve.c @@ -698,7 +698,7 @@ typeChecker(stream *out, Module scope, M int tpe = getArgType(mb, p, k); if (findGDKtype(tpe) == TYPE_bat || findGDKtype(tpe) == TYPE_str || - (!isPolyType(tpe) && tpe < TYPE_any && ATOMextern(tpe))) + (!isPolyType(tpe) && tpe < MAXATOMS && ATOMextern(tpe))) setVarCleanup(mb, getArg(p, k)); } } diff --git a/monetdb5/mal/mal_resource.c b/monetdb5/mal/mal_resource.c --- a/monetdb5/mal/mal_resource.c +++ b/monetdb5/mal/mal_resource.c @@ -190,8 +190,10 @@ MALresourceFairness(lng usec) /* worker reporting time spent in usec! */ clk = usec / 1000; +#if FAIRNESS_THRESHOLD < 1000 /* it's actually 2000 */ /* cap the maximum penalty */ clk = clk > FAIRNESS_THRESHOLD? FAIRNESS_THRESHOLD:clk; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list