Changeset: ab94dea778d7 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ab94dea778d7 Added Files: debian/libmonetdb13.install Removed Files: debian/libmonetdb14.install Modified Files: .hgtags MonetDB.spec NT/installer32/MonetDB-ODBC-Installer.vdproj NT/installer32/MonetDB5-Geom-Module.vdproj NT/installer32/MonetDB5-SQL-Installer.vdproj NT/installer64/MonetDB-ODBC-Installer.vdproj NT/installer64/MonetDB5-Geom-Module.vdproj NT/installer64/MonetDB5-SQL-Installer.vdproj NT/monetdb_config.h.in NT/rules.msc clients/Tests/exports.stable.out clients/mapilib/mapi.rc clients/odbc/driver/driver.rc clients/odbc/winsetup/setup.rc configure.ag debian/changelog debian/control gdk/gdk_unique.c gdk/libbat.rc geom/monetdb5/geom.c libversions monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_runtime.c monetdb5/mal/mal_runtime.h monetdb5/optimizer/opt_statistics.c monetdb5/optimizer/opt_wrapper.c monetdb5/tools/libmonetdb5.rc sql/backends/monet5/sql_result.c sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.sql sql/test/BugTracker-2016/Tests/select-in-from.Bug-6121.sql sql/test/BugTracker-2016/Tests/select-in-from.Bug-6121.stable.out sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out.32bit sql/test/leaks/Tests/check1.stable.out sql/test/leaks/Tests/check1.stable.out.int128 sql/test/leaks/Tests/check2.stable.out sql/test/leaks/Tests/check2.stable.out.int128 sql/test/leaks/Tests/check3.stable.out sql/test/leaks/Tests/check3.stable.out.int128 sql/test/leaks/Tests/check4.stable.out sql/test/leaks/Tests/check4.stable.out.int128 sql/test/leaks/Tests/check5.stable.out sql/test/leaks/Tests/check5.stable.out.int128 vertoo.data Branch: wlcr Log Message:
Merge with default diffs (truncated from 617 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -647,3 +647,5 @@ deeebb69952f76e3377664bb97997885b283f9d1 afc859894553ef804cded49a83b035d9d2cda73b Dec2016_3 ea0fe76e0095771bccca626b39e3e839a90ba320 Dec2016_release afc859894553ef804cded49a83b035d9d2cda73b Dec2016_release +bf4b58d202645774b75c7f508c84b30e3be78a49 Dec2016_5 +bf4b58d202645774b75c7f508c84b30e3be78a49 Dec2016_SP1_release diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -124,7 +124,7 @@ Vendor: MonetDB BV <i...@monetdb.org> Group: Applications/Databases License: MPLv2.0 URL: http://www.monetdb.org/ -Source: http://dev.monetdb.org/downloads/sources/Dec2016/%{name}-%{version}.tar.bz2 +Source: http://dev.monetdb.org/downloads/sources/Dec2016-SP1/%{name}-%{version}.tar.bz2 # we need systemd for the _unitdir macro to exist %if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7 @@ -957,6 +957,21 @@ rm -f %{buildroot}%{_bindir}/Maddlog %postun -p /sbin/ldconfig %changelog +* Fri Jan 13 2017 Panagiotis Koutsourakis <kutsu...@monetdbsolutions.com> - 11.25.5-20170113 +- Rebuilt. +- BZ#4039: Slow mserver5 start after drop of tables (> 1 hour) +- BZ#4048: Segfault on vacuum with parallel updates +- BZ#6079: pushselect optimizer bug on MAL snippet +- BZ#6140: INNER JOIN gives the results of a CROSS JOIN +- BZ#6150: Query giving wrong results, extra records are appearing +- BZ#6175: The program can't start because python27.dll is missing from + your computer. +- BZ#6178: AVG + GROUP BY returns NULL for some records that should + have results +- BZ#6179: mergetable optimizer messes up sample +- BZ#6182: sys.shutdown triggers assertion in clients.c +- BZ#6184: Incorrect result set - Extra records in result set + * Sat Dec 17 2016 Sjoerd Mullender <sjo...@acm.org> - 11.25.3-20161217 - Rebuilt. 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 @@ -2473,7 +2473,7 @@ str runMALsequence(Client cntxt, MalBlkP str runScenario(Client c); void runtimeProfileBegin(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, RuntimeProfile prof); void runtimeProfileExit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, RuntimeProfile prof); -void runtimeProfileFinish(Client cntxt, MalBlkPtr mb); +void runtimeProfileFinish(Client cntxt, MalBlkPtr mb, MalStkPtr stk); void runtimeProfileInit(Client cntxt, MalBlkPtr mb, MalStkPtr stk); int safetyBarrier(InstrPtr p, InstrPtr q); str sampleRef; diff --git a/debian/changelog b/debian/changelog --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,21 @@ +monetdb (11.25.5) unstable; urgency=low + + * Rebuilt. + * BZ#4039: Slow mserver5 start after drop of tables (> 1 hour) + * BZ#4048: Segfault on vacuum with parallel updates + * BZ#6079: pushselect optimizer bug on MAL snippet + * BZ#6140: INNER JOIN gives the results of a CROSS JOIN + * BZ#6150: Query giving wrong results, extra records are appearing + * BZ#6175: The program can't start because python27.dll is missing from + your computer. + * BZ#6178: AVG + GROUP BY returns NULL for some records that should + have results + * BZ#6179: mergetable optimizer messes up sample + * BZ#6182: sys.shutdown triggers assertion in clients.c + * BZ#6184: Incorrect result set - Extra records in result set + + -- Panagiotis Koutsourakis <kutsu...@monetdbsolutions.com> Fri, 13 Jan 2017 11:15:52 +0100 + monetdb (11.25.3) unstable; urgency=low * Rebuilt. diff --git a/debian/control b/debian/control --- a/debian/control +++ b/debian/control @@ -13,7 +13,7 @@ Build-Depends: debhelper (>= 5), autotoo Standards-Version: 3.8.0 X-Python-Version: >= 2.6 -Package: libmonetdb14 +Package: libmonetdb13 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Conflicts: libmonetdb5-server-geom (<< ${source:Version}) @@ -32,7 +32,7 @@ Description: MonetDB core library Package: libmonetdb-dev Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libatomic-ops-dev, - libmonetdb14, libmonetdb-stream-dev + libmonetdb13, libmonetdb-stream-dev Description: MonetDB development files MonetDB is a database management system that is developed from a main-memory perspective with use of a fully decomposed storage model, diff --git a/debian/libmonetdb14.install b/debian/libmonetdb13.install rename from debian/libmonetdb14.install rename to debian/libmonetdb13.install diff --git a/gdk/gdk_unique.c b/gdk/gdk_unique.c --- a/gdk/gdk_unique.c +++ b/gdk/gdk_unique.c @@ -172,7 +172,7 @@ BATunique(BAT *b, BAT *s) s ? BATgetId(s) : "NULL", s ? BATcount(s) : 0); assert(vars == NULL); - seen = GDKzalloc(256 / 16); + seen = GDKzalloc((256 / 16) * sizeof(seen[0])); if (seen == NULL) goto bunins_failed; for (;;) { @@ -209,7 +209,7 @@ BATunique(BAT *b, BAT *s) s ? BATgetId(s) : "NULL", s ? BATcount(s) : 0); assert(vars == NULL); - seen = GDKzalloc(65536 / 16); + seen = GDKzalloc((65536 / 16) * sizeof(seen[0])); if (seen == NULL) goto bunins_failed; for (;;) { diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c --- a/geom/monetdb5/geom.c +++ b/geom/monetdb5/geom.c @@ -2645,14 +2645,6 @@ wkbMLineStringToPolygon(wkb **geomWKB, s } } - //print areas - for (i = 0; i < itemsNum; i++) { - char *toStr = NULL; - int len = 0; - wkbTOSTR(&toStr, &len, linestringsWKB[i]); - GDKfree(toStr); - } - if (*flag == 0) { //the biggest polygon is the external shell GEOSCoordSeq coordSeq_external; diff --git a/libversions b/libversions --- a/libversions +++ b/libversions @@ -36,13 +36,13 @@ # version of the GDK library (subdirectory gdk; also includes # common/options and common/utils) -GDK_VERSION=14:1:0 +GDK_VERSION=14:1:1 # version of the MAPI library (subdirectory clients/mapilib) MAPI_VERSION=8:1:0 # version of the MONETDB5 library (subdirectory monetdb5, not including extras) -MONETDB5_VERSION=22:0:0 +MONETDB5_VERSION=22:0:1 # version of the STREAM library (subdirectory common/stream) STREAM_VERSION=9:0:1 diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c --- a/monetdb5/mal/mal_interpreter.c +++ b/monetdb5/mal/mal_interpreter.c @@ -479,6 +479,7 @@ str runMALsequence(Client cntxt, MalBlkP int stkpc = 0; RuntimeProfileRecord runtimeProfile, runtimeProfileFunction; lng lastcheck = 0; + int startedProfileQueue = 0; #define CHECKINTERVAL 1000 /* how often do we check for client disconnect */ runtimeProfile.ticks = runtimeProfileFunction.ticks = 0; @@ -519,6 +520,7 @@ str runMALsequence(Client cntxt, MalBlkP /* also produce event record for start of function */ if ( startpc == 1 && startpc < mb->stop ){ + startedProfileQueue = 1; runtimeProfileInit(cntxt, mb, stk); runtimeProfileBegin(cntxt, mb, stk, getInstrPtr(mb,0), &runtimeProfileFunction); mb->starttime = GDKusec(); @@ -769,7 +771,6 @@ str runMALsequence(Client cntxt, MalBlkP ret = shutdownFactory(cntxt, mb); runtimeProfileExit(cntxt, mb, stk, pci, &runtimeProfile); runtimeProfileExit(cntxt, mb, stk, getInstrPtr(mb,0), &runtimeProfileFunction); - runtimeProfileFinish(cntxt, mb); if (pcicaller && garbageControl(getInstrPtr(mb, 0))) garbageCollector(cntxt, mb, stk, TRUE); if (cntxt->qtimeout && GDKusec()- mb->starttime > cntxt->qtimeout){ @@ -802,8 +803,6 @@ str runMALsequence(Client cntxt, MalBlkP if( mb->stop <= 1) continue; runtimeProfileExit(cntxt, mb, stk, pci, &runtimeProfile); - if (ret != MAL_SUCCEED) - runtimeProfileFinish(cntxt, mb); /* check for strong debugging after each MAL statement */ if ( pci->token != FACcall && ret== MAL_SUCCEED) { for (i = 0; i < pci->retc; i++) { @@ -1141,7 +1140,6 @@ str runMALsequence(Client cntxt, MalBlkP if (stkpc == mb->stop) { runtimeProfileExit(cntxt, mb, stk, pci, &runtimeProfile); runtimeProfileExit(cntxt, mb, stk, getInstrPtr(mb,0), &runtimeProfileFunction); - runtimeProfileFinish(cntxt, mb); break; } if (stkpc == mb->stop) @@ -1149,6 +1147,8 @@ str runMALsequence(Client cntxt, MalBlkP "Exception raised"); break; case YIELDsymbol: /* to be defined */ + if( startedProfileQueue) + runtimeProfileFinish(cntxt, mb, stk); if ( backup != backups) GDKfree(backup); if ( garbage != garbages) GDKfree(garbage); return yieldFactory(mb, pci, stkpc); @@ -1175,7 +1175,6 @@ str runMALsequence(Client cntxt, MalBlkP /* reset the clock */ runtimeProfileExit(cntxt, mb, stk, pp, &runtimeProfile); runtimeProfileExit(cntxt, mb, stk, getInstrPtr(mb,0), &runtimeProfileFunction); - runtimeProfileFinish(cntxt, mb); } } stkpc = mb->stop; @@ -1209,6 +1208,8 @@ str runMALsequence(Client cntxt, MalBlkP } freeException(oldret); } + if( startedProfileQueue) + runtimeProfileFinish(cntxt, mb, stk); if ( backup != backups) GDKfree(backup); if ( garbage != garbages) GDKfree(garbage); return ret; diff --git a/monetdb5/mal/mal_runtime.c b/monetdb5/mal/mal_runtime.c --- a/monetdb5/mal/mal_runtime.c +++ b/monetdb5/mal/mal_runtime.c @@ -27,7 +27,6 @@ QueryQueue QRYqueue; static int qtop, qsize; static int qtag= 1; -static int calltag =0; // to identify each invocation void mal_runtime_reset(void) @@ -37,7 +36,6 @@ mal_runtime_reset(void) qtop = 0; qsize = 0; qtag= 1; - calltag =0; } static str isaSQLquery(MalBlkPtr mb){ @@ -72,41 +70,48 @@ runtimeProfileInit(Client cntxt, MalBlkP MT_lock_unset(&mal_delayLock); return; } + // check for recursive call for( i = 0; i < qtop; i++) - if ( QRYqueue[i].mb == mb) - break; + if ( QRYqueue[i].mb == mb && stk->up == QRYqueue[i].stk){ + QRYqueue[i].stk = stk; + stk->tag = QRYqueue[i].tag; + MT_lock_unset(&mal_delayLock); + return; + } - stk->tag = calltag++; - if ( i == qtop ) { - mb->tag = qtag; - QRYqueue[i].mb = mb; // for detecting duplicates - QRYqueue[i].stk = stk; // for status pause 'p'/running '0'/ quiting 'q' - QRYqueue[i].tag = qtag++; - QRYqueue[i].start = (lng)time(0); - QRYqueue[i].runtime = mb->runtime; - q = isaSQLquery(mb); - QRYqueue[i].query = q? GDKstrdup(q):0; - QRYqueue[i].status = "running"; - QRYqueue[i].cntxt = cntxt; - } - + // add new invokation + QRYqueue[i].mb = mb; + QRYqueue[i].tag = qtag++; + QRYqueue[i].stk = stk; // for status pause 'p'/running '0'/ quiting 'q' + QRYqueue[i].start = (lng)time(0); + QRYqueue[i].runtime = mb->runtime; // the estimated execution time + q = isaSQLquery(mb); + QRYqueue[i].query = q? GDKstrdup(q):0; + QRYqueue[i].status = "running"; + QRYqueue[i].cntxt = cntxt; qtop += i == qtop; - MT_lock_unset(&mal_delayLock); } void -runtimeProfileFinish(Client cntxt, MalBlkPtr mb) +runtimeProfileFinish(Client cntxt, MalBlkPtr mb, MalStkPtr stk) { int i,j; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list