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

Reply via email to