Changeset: 1217affb9d64 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1217affb9d64
Branch: Oct2020
Log Message:

merged


diffs (truncated from 2476 to 300 lines):

diff --git a/.bumpversion.cfg b/.bumpversion.cfg
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 11.39.12
+current_version = 11.39.14
 commit = False
 tag = False
 
diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -796,3 +796,5 @@ 929f5e280bc1532a2bfaab127ca7915dc3b69a33
 742b7847cfdcea39a6c19ab29eb35471d46bb2bb Oct2020_11
 929f5e280bc1532a2bfaab127ca7915dc3b69a33 Oct2020_SP2_release
 742b7847cfdcea39a6c19ab29eb35471d46bb2bb Oct2020_SP2_release
+17d27ad30941c81e4bc700300912e84e9b9a8c37 Oct2020_13
+17d27ad30941c81e4bc700300912e84e9b9a8c37 Oct2020_SP3_release
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -1,5 +1,5 @@
 %global name MonetDB
-%global version 11.39.12
+%global version 11.39.14
 %{!?buildno: %global buildno %(date +%Y%m%d)}
 
 # Use bcond_with to add a --with option; i.e., "without" is default.
@@ -84,7 +84,7 @@ Group: Applications/Databases
 License: MPLv2.0
 URL: https://www.monetdb.org/
 BugURL: https://bugs.monetdb.org/
-Source: 
https://www.monetdb.org/downloads/sources/Oct2020-SP2/%{name}-%{version}.tar.bz2
+Source: 
https://www.monetdb.org/downloads/sources/Oct2020-SP3/%{name}-%{version}.tar.bz2
 
 # The Fedora packaging document says we need systemd-rpm-macros for
 # the _unitdir and _tmpfilesdir macros to exist; however on RHEL 7
@@ -845,6 +845,10 @@ else
 fi
 
 %changelog
+* Thu Feb 11 2021 Sjoerd Mullender <sjo...@acm.org> - 11.39.13-20210211
+- Rebuilt.
+- GH#7049: Implement DISTINCT for GROUP_CONCAT
+
 * Mon Jan 18 2021 Sjoerd Mullender <sjo...@acm.org> - 11.39.11-20210118
 - Rebuilt.
 - GH#3772: Any user can grant a role.
diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -969,6 +969,34 @@ dump_column_definition(Mapi mid, stream 
                mnstr_printf(toConsole, "\t");
                space = dquoted_print(toConsole, c_name, " ");
                mnstr_printf(toConsole, "%*s", CAP(slen - space), "");
+               if (s != NULL && t != NULL &&
+                       strcmp(c_type, "char") == 0 && strcmp(c_type_digits, 
"0") == 0) {
+                       /* if the number of characters is not specified (due to 
a bug),
+                        * calculate a size */
+                       char *c = descape(c_name);
+                       if (c != NULL) {
+                               size_t qlen = strlen(c) + strlen(s) + strlen(t) 
+ 64;
+                               char *q = malloc(qlen);
+                               if (q != NULL) {
+                                       snprintf(q, qlen, "SELECT 
max(length(\"%s\")) FROM \"%s\".\"%s\"", c, s, t);
+                                       MapiHdl h = mapi_query(mid, q);
+                                       if (h != NULL) {
+                                               if (mapi_fetch_row(h) != 0) {
+                                                       const char *d = 
mapi_fetch_field(h, 0);
+                                                       free(c_type_digits);
+                                                       /* if NULL, i.e. no 
non-NULL values, fill in 1 */
+                                                       c_type_digits = 
strdup(d ? d : "1");
+                                                       fprintf(stderr, 
"Warning: fixing size of CHAR column for %s of table %s.%s\n", c_name, schema, 
tname);
+                                               }
+                                               mapi_close_handle(h);
+                                       }
+                                       free(q);
+                               }
+                               free(c);
+                       }
+                       if (c_type_digits == NULL)
+                               goto bailout;
+               }
                space = dump_type(mid, toConsole, c_type, c_type_digits, 
c_type_scale, hashge);
                if (strcmp(c_null, "false") == 0) {
                        mnstr_printf(toConsole, "%*s NOT NULL",
diff --git a/clients/mapilib/mapi.rc b/clients/mapilib/mapi.rc
--- a/clients/mapilib/mapi.rc
+++ b/clients/mapilib/mapi.rc
@@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_U
 #define sversion(major,minor,patch)    #major "." #minor "." #patch "\0"
 
 1 VERSIONINFO
-  FILEVERSION version(11,39,12)
-  PRODUCTVERSION version(11,39,12)
+  FILEVERSION version(11,39,14)
+  PRODUCTVERSION version(11,39,14)
   FILEFLAGSMASK 0x3fL
   FILEFLAGS 0
   FILEOS VOS_NT_WINDOWS32
@@ -21,14 +21,14 @@ BEGIN
       VALUE "Comments", "\0"
       VALUE "CompanyName", "MonetDB B.V.\0"
       VALUE "FileDescription", "MonetDB Application Interface DLL\0"
-      VALUE "FileVersion", sversion(11,39,12)
+      VALUE "FileVersion", sversion(11,39,14)
       VALUE "InternalName", "Mapi\0"
       VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2021\0"
       VALUE "LegalTrademarks", "\0"
       VALUE "OriginalFilename", "Mapi.dll\0"
       VALUE "PrivateBuild", "\0"
       VALUE "ProductName", "MonetDB Client Libraries\0"
-      VALUE "ProductVersion", sversion(11,39,12)
+      VALUE "ProductVersion", sversion(11,39,14)
       VALUE "SpecialBuild", "\0"
     END
   END
diff --git a/clients/odbc/driver/driver.rc b/clients/odbc/driver/driver.rc
--- a/clients/odbc/driver/driver.rc
+++ b/clients/odbc/driver/driver.rc
@@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_U
 #define sversion(major,minor,patch)    #major "." #minor "." #patch "\0"
 
 1 VERSIONINFO
-  FILEVERSION version(11,39,12)
-  PRODUCTVERSION version(11,39,12)
+  FILEVERSION version(11,39,14)
+  PRODUCTVERSION version(11,39,14)
   FILEFLAGSMASK 0x3fL
   FILEFLAGS 0
   FILEOS VOS_NT_WINDOWS32
@@ -21,14 +21,14 @@ BEGIN
       VALUE "Comments", "\0"
       VALUE "CompanyName", "MonetDB B.V.\0"
       VALUE "FileDescription", "MonetDB ODBC Driver DLL\0"
-      VALUE "FileVersion", sversion(11,39,12)
+      VALUE "FileVersion", sversion(11,39,14)
       VALUE "InternalName", "MonetODBC\0"
       VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2021\0"
       VALUE "LegalTrademarks", "\0"
       VALUE "OriginalFilename", "MonetODBC.dll\0"
       VALUE "PrivateBuild", "\0"
       VALUE "ProductName", "MonetDB SQL Server\0"
-      VALUE "ProductVersion", sversion(11,39,12)
+      VALUE "ProductVersion", sversion(11,39,14)
       VALUE "SpecialBuild", "\0"
     END
   END
diff --git a/clients/odbc/winsetup/setup.rc b/clients/odbc/winsetup/setup.rc
--- a/clients/odbc/winsetup/setup.rc
+++ b/clients/odbc/winsetup/setup.rc
@@ -65,8 +65,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION version(11,39,12)
- PRODUCTVERSION version(11,39,12)
+ FILEVERSION version(11,39,14)
+ PRODUCTVERSION version(11,39,14)
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -83,12 +83,12 @@ BEGIN
         BEGIN
             VALUE "CompanyName", "MonetDB B.V."
             VALUE "FileDescription", "MonetDB ODBC Setup DLL"
-            VALUE "FileVersion", sversion(11,39,12)
+            VALUE "FileVersion", sversion(11,39,14)
             VALUE "InternalName", "MonetODBCs.dll"
             VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2021"
             VALUE "OriginalFilename", "MonetODBCs.dll"
             VALUE "ProductName", "MonetDB SQL Server"
-            VALUE "ProductVersion", sversion(11,39,12)
+            VALUE "ProductVersion", sversion(11,39,14)
         END
     END
     BLOCK "VarFileInfo"
diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake
--- a/cmake/monetdb-versions.cmake
+++ b/cmake/monetdb-versions.cmake
@@ -8,7 +8,7 @@
 
 set(MONETDB_VERSION_MAJOR "11")
 set(MONETDB_VERSION_MINOR "39")
-set(MONETDB_VERSION_PATCH "12")
+set(MONETDB_VERSION_PATCH "14")
 
 if(RELEASE_VERSION)
   set(MONETDB_RELEASE "unreleased")
@@ -50,7 +50,7 @@ set(MONETDB_VERSION "${MONETDB_VERSION_M
 # version of the GDK library (subdirectory gdk; also includes
 # common/options and common/utils)
 set(GDK_VERSION_CURRENT "22")
-set(GDK_VERSION_REVISION "1")
+set(GDK_VERSION_REVISION "2")
 set(GDK_VERSION_AGE "1")
 math(EXPR GDK_VERSION_MAJOR "${GDK_VERSION_CURRENT} - ${GDK_VERSION_AGE}")
 set(GDK_VERSION 
"${GDK_VERSION_MAJOR}.${GDK_VERSION_AGE}.${GDK_VERSION_REVISION}")
@@ -64,7 +64,7 @@ set(MAPI_VERSION "${MAPI_VERSION_MAJOR}.
 
 # version of the MONETDB5 library (subdirectory monetdb5, not including extras 
or sql)
 set(MONETDB5_VERSION_CURRENT "30")
-set(MONETDB5_VERSION_REVISION "4")
+set(MONETDB5_VERSION_REVISION "5")
 set(MONETDB5_VERSION_AGE "0")
 math(EXPR MONETDB5_VERSION_MAJOR "${MONETDB5_VERSION_CURRENT} - 
${MONETDB5_VERSION_AGE}")
 set(MONETDB5_VERSION 
"${MONETDB5_VERSION_MAJOR}.${MONETDB5_VERSION_AGE}.${MONETDB5_VERSION_REVISION}")
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+monetdb (11.39.13) unstable; urgency=low
+
+  * Rebuilt.
+  * GH#7049: Implement DISTINCT for GROUP_CONCAT
+
+ -- Sjoerd Mullender <sjo...@acm.org>  Thu, 11 Feb 2021 10:59:33 +0100
+
 monetdb (11.39.11) unstable; urgency=low
 
   * Rebuilt.
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -1675,11 +1675,11 @@ BATsort(BAT **sorted, BAT **order, BAT *
                        b->tsorted = true;
                        b->batDirtydesc = true;
                }
-               if (b->trevsorted != is_oid_nil(b->tseqbase) || b->batCount <= 
1) {
+               if (b->trevsorted != (is_oid_nil(b->tseqbase) || b->batCount <= 
1)) {
                        b->trevsorted = !b->trevsorted;
                        b->batDirtydesc = true;
                }
-               if (b->tkey != !is_oid_nil(b->tseqbase)) {
+               if (b->tkey != (!is_oid_nil(b->tseqbase) || b->batCount <= 1)) {
                        b->tkey = !b->tkey;
                        b->batDirtydesc = true;
                }
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -2400,8 +2400,10 @@ mergejoin(BAT **r1p, BAT **r2p, BAT *l, 
                        nr = 0;                                         \
                        if ((!nil_matches || not_in) && is_##TYPE##_nil(v)) { \
                                /* no match */                          \
-                               if (not_in)                             \
+                               if (not_in) {                           \
+                                       lskipped = BATcount(r1) > 0;    \
                                        continue;                       \
+                               }                                       \
                        } else if (hash_cand) {                         \
                                for (rb = HASHget(hsh, hash_##TYPE(hsh, &v)); \
                                     rb != HASHnil(hsh);                \
@@ -2673,8 +2675,10 @@ hashjoin(BAT **r1p, BAT **r2p, BAT *l, B
                        nr = 0;
                        if ((!nil_matches || not_in) && cmp(v, nil) == 0) {
                                /* no match */
-                               if (not_in)
+                               if (not_in) {
+                                       lskipped = BATcount(r1) > 0;
                                        continue;
+                               }
                        } else if (hash_cand) {
                                for (rb = HASHget(hsh, HASHprobe(hsh, v));
                                     rb != HASHnil(hsh);
@@ -2990,7 +2994,9 @@ count_unique(BAT *b, BAT *s, BUN *cnt1, 
                mask = HASHmask(ci.ncand);
                if (mask < ((BUN) 1 << 16))
                        mask = (BUN) 1 << 16;
-               if (snprintf(hs.heaplink.filename, 
sizeof(hs.heaplink.filename), "%s.thshunil%x", nme, (unsigned) THRgettid()) >= 
(int) sizeof(hs.heaplink.filename) ||
+               if ((hs.heaplink.farmid = BBPselectfarm(TRANSIENT, b->ttype, 
hashheap)) < 0 ||
+                   (hs.heapbckt.farmid = BBPselectfarm(TRANSIENT, b->ttype, 
hashheap)) < 0 ||
+                   snprintf(hs.heaplink.filename, 
sizeof(hs.heaplink.filename), "%s.thshunil%x", nme, (unsigned) THRgettid()) >= 
(int) sizeof(hs.heaplink.filename) ||
                    snprintf(hs.heapbckt.filename, 
sizeof(hs.heapbckt.filename), "%s.thshunib%x", nme, (unsigned) THRgettid()) >= 
(int) sizeof(hs.heapbckt.filename) ||
                    HASHnew(&hs, b->ttype, BUNlast(b), mask, BUN_NONE, false) 
!= GDK_SUCCEED) {
                        GDKerror("cannot allocate hash table\n");
diff --git a/gdk/gdk_project.c b/gdk/gdk_project.c
--- a/gdk/gdk_project.c
+++ b/gdk/gdk_project.c
@@ -612,7 +612,7 @@ BATproject2(BAT *restrict l, BAT *restri
        }
 
        if (!stringtrick && tpe != TYPE_oid)
-               tpe = ATOMstorage(tpe);
+               tpe = ATOMbasetype(tpe);
        switch (tpe) {
        case TYPE_bte:
                res = project_bte(bn, l, lci, r1, r2);
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -865,7 +865,12 @@ ilog2(BUN x)
                                /* degenerates into half range */       \
                                /* -inf < x <[=] *tl */                 \
                                anti = false;                           \
-                               th = tl;                                \
+                               if (tl == &vl.v_##TYPE) {               \
+                                       vh.v_##TYPE = vl.v_##TYPE;      \
+                                       th = &vh.v_##TYPE;              \
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to