MonetDB: Oct2020 - Remove accidentally added changelog message.

2021-05-03 Thread Sjoerd Mullender
Changeset: af88b10dddb7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/af88b10dddb7
Modified Files:
MonetDB.spec
debian/changelog
misc/packages/deb/changelog
misc/packages/rpm/changelog
Branch: Oct2020
Log Message:

Remove accidentally added changelog message.


diffs (43 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -847,7 +847,6 @@ fi
 %changelog
 * Mon May 03 2021 Sjoerd Mullender  - 11.39.17-20210503
 - Rebuilt.
-- GH#2430: JDBC: support for streams
 - GH#3336: DB files not removed if all rows are deleted, even after restart
 - GH#7104: Monetdbe NTILE function does not produce correct ordering
 - GH#7108: Monetdb crashes on query execution
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,6 @@
 monetdb (11.39.17) unstable; urgency=low
 
   * Rebuilt.
-  * GH#2430: JDBC: support for streams
   * GH#3336: DB files not removed if all rows are deleted, even after restart
   * GH#7104: Monetdbe NTILE function does not produce correct ordering
   * GH#7108: Monetdb crashes on query execution
diff --git a/misc/packages/deb/changelog b/misc/packages/deb/changelog
--- a/misc/packages/deb/changelog
+++ b/misc/packages/deb/changelog
@@ -1,7 +1,6 @@
 monetdb (11.39.17) unstable; urgency=low
 
   * Rebuilt.
-  * GH#2430: JDBC: support for streams
   * GH#3336: DB files not removed if all rows are deleted, even after restart
   * GH#7104: Monetdbe NTILE function does not produce correct ordering
   * GH#7108: Monetdb crashes on query execution
diff --git a/misc/packages/rpm/changelog b/misc/packages/rpm/changelog
--- a/misc/packages/rpm/changelog
+++ b/misc/packages/rpm/changelog
@@ -1,6 +1,5 @@
 * Mon May 03 2021 Sjoerd Mullender  - 11.39.17-20210503
 - Rebuilt.
-- GH#2430: JDBC: support for streams
 - GH#3336: DB files not removed if all rows are deleted, even after restart
 - GH#7104: Monetdbe NTILE function does not produce correct ordering
 - GH#7108: Monetdb crashes on query execution
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - Fix for bug #7116 Test for ambiguous function...

2021-05-03 Thread Pedro Ferreira
Changeset: f528a00bd4b9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f528a00bd4b9
Modified Files:
sql/server/rel_psm.c
Branch: Jul2021
Log Message:

Fix for bug #7116 Test for ambiguous function calls only at creation time. Also 
ignore it on replace situations


diffs (46 lines):

diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c
--- a/sql/server/rel_psm.c
+++ b/sql/server/rel_psm.c
@@ -849,19 +849,6 @@ rel_create_func(sql_query *query, dlist 
return sql_error(sql, ERR_NOTFOUND, SQLSTATE(3F000) "CREATE %s: 
no such schema '%s'", F, sname);
 
type_list = create_type_list(sql, params, 1);
-   if (type == F_FUNC || type == F_AGGR || type == F_FILT) {
-   sql_ftype ftpyes[3] = {F_FUNC, F_AGGR, F_FILT};
-
-   for (int i = 0; i < 3; i++) {
-   if (ftpyes[i] != type) {
-   if (sql_bind_func_(sql, s->base.name, fname, 
type_list, ftpyes[i]))
-   return sql_error(sql, 02, 
SQLSTATE(42000) "CREATE %s: there's %s with the name '%s' and the same 
parameters, which causes ambiguous calls", F,
-
(ftpyes[i] == F_AGGR) ? "an aggregate" : (ftpyes[i] == F_FILT) ? "a filter 
function" : "a function", fname);
-   sql->session->status = 0; /* if the function 
was not found clean the error */
-   sql->errstr[0] = '\0';
-   }
-   }
-   }
 
if ((sf = sql_bind_func_(sql, s->base.name, fname, type_list, type)) != 
NULL && create) {
if (replace) {
@@ -901,6 +888,22 @@ rel_create_func(sql_query *query, dlist 
sql->session->status = 0; /* if the function was not found 
clean the error */
sql->errstr[0] = '\0';
}
+
+   if (create && (type == F_FUNC || type == F_AGGR || type == F_FILT)) {
+   sql_ftype ftpyes[3] = {F_FUNC, F_AGGR, F_FILT};
+
+   for (int i = 0; i < 3; i++) {
+   if (ftpyes[i] != type) {
+   sql_subfunc *found = NULL;
+   if ((found = sql_bind_func_(sql, s->base.name, 
fname, type_list, ftpyes[i])))
+   return sql_error(sql, 02, 
SQLSTATE(42000) "CREATE %s: there's %s with the name '%s' and the same 
parameters, which causes ambiguous calls", F,
+   
IS_AGGR(found->func) ? "an aggregate" : IS_FILT(found->func) ? "a filter 
function" : "a function", fname);
+   sql->session->status = 0; /* if the function 
was not found clean the error */
+   sql->errstr[0] = '\0';
+   }
+   }
+   }
+
list_destroy(type_list);
if (create && !mvc_schema_privs(sql, s)) {
return sql_error(sql, 02, SQLSTATE(42000) "CREATE %s: 
insufficient privileges for user '%s' in schema '%s'", F,
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - Merge heads.

2021-05-03 Thread Sjoerd Mullender
Changeset: d001f016cdd7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d001f016cdd7
Branch: Jul2021
Log Message:

Merge heads.


diffs (truncated from 753 to 300 lines):

diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -2382,9 +2382,9 @@ sql_update_jul2021(Client c, mvc *sql, c
"drop procedure 
sys.flush_log();\n");
 
pos += snprintf(buf + pos, bufsize - pos,
-   "drop procedure 
sys.deltas(string);\n"
-   "drop procedure 
sys.deltas(string, string);\n"
-   "drop procedure 
sys.deltas(string, string, string);\n");
+   "drop function 
sys.deltas(string);\n"
+   "drop function 
sys.deltas(string, string);\n"
+   "drop function 
sys.deltas(string, string, string);\n");
pos += snprintf(buf + pos, bufsize - pos,
"create function 
sys.deltas (\"schema\" string)\n"
"returns table (id int, 
segments bigint, \"all\" bigint, inserted bigint, updates bigint, deletes 
bigint, level int)\n"
diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -1555,37 +1555,92 @@ static sql_rel *
return rel;
 }
 
+static void reset_has_nil(sql_rel *rel, sql_exp *e);
+
 static void
-reset_has_nil(sql_exp *e)
+exps_reset_has_nil(sql_rel *rel, list *exps)
+{
+   if (!list_empty(exps))
+   for(node *n=exps->h; n; n=n->next)
+   reset_has_nil(rel, n->data);
+}
+
+static void
+reset_has_nil(sql_rel *rel, sql_exp *e)
 {
-   set_has_nil(e);
-   if (is_convert(e->type))
-   reset_has_nil(e->l);
+   switch (e->type) {
+   case e_column: {
+   if (((is_right(rel->op) || is_full(rel->op)) && 
rel_find_exp(rel->l, e) != NULL) ||
+   ((is_left(rel->op) || is_full(rel->op)) && 
rel_find_exp(rel->r, e) != NULL))
+   set_has_nil(e);
+   } break;
+   case e_convert: {
+   reset_has_nil(rel, e->l);
+   if (has_nil((sql_exp*)e->l))
+   set_has_nil(e);
+   } break;
+   case e_func: {
+   sql_subfunc *f = e->f;
+
+   exps_reset_has_nil(rel, e->l);
+   if (!f->func->semantics && e->l && have_nil(e->l))
+   set_has_nil(e);
+   } break;
+   case e_aggr: {
+   sql_subfunc *a = e->f;
+
+   exps_reset_has_nil(rel, e->l);
+   if ((a->func->s || strcmp(a->func->base.name, "count") != 0) && 
!a->func->semantics && !has_nil(e) && e->l && have_nil(e->l))
+   set_has_nil(e);
+   } break;
+   case e_cmp: {
+   if (e->flag == cmp_or || e->flag == cmp_filter) {
+   exps_reset_has_nil(rel, e->l);
+   exps_reset_has_nil(rel, e->r);
+   if (have_nil(e->l) || have_nil(e->r))
+   set_has_nil(e);
+   } else if (e->flag == cmp_in || e->flag == cmp_notin) {
+   reset_has_nil(rel, e->l);
+   exps_reset_has_nil(rel, e->r);
+   if (has_nil((sql_exp*)e->l) || have_nil(e->r))
+   set_has_nil(e);
+   } else {
+   reset_has_nil(rel, e->l);
+   reset_has_nil(rel, e->r);
+   if (e->f)
+   reset_has_nil(rel, e->f);
+   if (!is_semantics(e) && (((sql_exp*)e->l) || 
has_nil((sql_exp*)e->r) || (e->f && has_nil((sql_exp*)e->f
+   set_has_nil(e);
+   }
+   } break;
+   default:
+   break;
+   }
 }
 
 static sql_exp *
-rewrite_inner(mvc *sql, sql_rel *rel, sql_rel *inner, operator_type *op)
+rewrite_inner(mvc *sql, sql_rel *rel, sql_rel *inner, operator_type op, 
sql_rel **rewrite)
 {
int single = is_single(inner);
sql_rel *d = NULL;
 
reset_single(inner);
if (single && is_project(rel->op))
-   *op = op_left;
+   op = op_left;
 
if (!is_project(inner->op))
inner = rel_project(sql->sa, inner, rel_projections(sql, inner, 
NULL, 1, 1));
 
if (is_join(rel->op)){ /* TODO handle set operators etc */
if (is_right(rel->op))
-   d = rel->l = rel_crossproduct(sql->sa, rel->l, in

MonetDB: Jul2021 - Merge with Oct2020 branch, not changing any f...

2021-05-03 Thread Sjoerd Mullender
Changeset: fe703a12444c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/fe703a12444c
Modified Files:
.bumpversion.cfg
MonetDB.spec
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/winsetup/setup.rc
cmake/monetdb-versions.cmake
gdk/libbat.rc
monetdb5/tools/libmonetdb5.rc
Branch: Jul2021
Log Message:

Merge with Oct2020 branch, not changing any files..

___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Oct2020 - Post release build.

2021-05-03 Thread Sjoerd Mullender
Changeset: 989055cbd241 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/989055cbd241
Modified Files:
.bumpversion.cfg
MonetDB.spec
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/winsetup/setup.rc
cmake/monetdb-versions.cmake
gdk/libbat.rc
monetdb5/tools/libmonetdb5.rc
Branch: Oct2020
Log Message:

Post release build.


diffs (189 lines):

diff --git a/.bumpversion.cfg b/.bumpversion.cfg
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 11.39.17
+current_version = 11.39.18
 commit = False
 tag = False
 
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.17
+%global version 11.39.18
 %{!?buildno: %global buildno %(date +%Y%m%d)}
 
 # Use bcond_with to add a --with option; i.e., "without" is default.
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,17)
-  PRODUCTVERSION version(11,39,17)
+  FILEVERSION version(11,39,18)
+  PRODUCTVERSION version(11,39,18)
   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,17)
+  VALUE "FileVersion", sversion(11,39,18)
   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,17)
+  VALUE "ProductVersion", sversion(11,39,18)
   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,17)
-  PRODUCTVERSION version(11,39,17)
+  FILEVERSION version(11,39,18)
+  PRODUCTVERSION version(11,39,18)
   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,17)
+  VALUE "FileVersion", sversion(11,39,18)
   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,17)
+  VALUE "ProductVersion", sversion(11,39,18)
   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,17)
- PRODUCTVERSION version(11,39,17)
+ FILEVERSION version(11,39,18)
+ PRODUCTVERSION version(11,39,18)
  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,17)
+VALUE "FileVersion", sversion(11,39,18)
 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,17)
+VALUE "ProductVersion", sversion(11,39,18)
 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,10 +8,10 @@
 
 set(MONETDB_VERSION_MAJOR "11")
 set(MONETDB_VERSION_MINOR "39")
-set(MONETDB_VERSION_PATCH "17")
+set(MONETDB_VERSION_PATCH "18")
 
 if(RELEASE_VERSION)
-  set(MONETDB_RELEASE "Oct2020-SP5")
+  set(MONETDB_RELEASE "unreleased")
 endif()
 set(MONETDB_VERSION 
"${MONETDB_VERSION_MAJOR}.${MONETDB_VERSION_MINOR}.${MONETDB_VERSION_PATCH}")
 
diff --git a/gdk/libbat.rc b/gdk/libbat.rc
--- a/gdk/libbat.rc
+++ b/gdk/libbat.rc
@@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_U
 #de

MonetDB: Jul2021 - Merge with Oct2020 branch.

2021-05-03 Thread Sjoerd Mullender
Changeset: 0771cc485a16 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0771cc485a16
Modified Files:
.hgtags
MonetDB.spec
cmake/monetdb-versions.cmake
Branch: Jul2021
Log Message:

Merge with Oct2020 branch.


diffs (truncated from 362 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -801,3 +801,5 @@ 17d27ad30941c81e4bc700300912e84e9b9a8c37
 6b71a8cc3498561815ac88d6c652922359efd13a Oct2020_15
 6b71a8cc3498561815ac88d6c652922359efd13a Oct2020_SP4_release
 02fd591b7d3311d566007e1bfb0c59682b17f12c Jul2021_root
+5cb19dc0880d1fb4799cd0f8019d1c2b430c503e Oct2020_17
+5cb19dc0880d1fb4799cd0f8019d1c2b430c503e Oct2020_SP5_release
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -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-SP4/%{name}-%{version}.tar.bz2
+Source: 
https://www.monetdb.org/downloads/sources/Oct2020-SP5/%{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
@@ -827,6 +827,41 @@ else
 fi
 
 %changelog
+* Mon May 03 2021 Sjoerd Mullender  - 11.39.17-20210503
+- Rebuilt.
+- GH#2430: JDBC: support for streams
+- GH#3336: DB files not removed if all rows are deleted, even after restart
+- GH#7104: Monetdbe NTILE function does not produce correct ordering
+- GH#7108: Monetdb crashes on query execution
+- GH#7109: MERGE Statement incorrectly reports that input relation matches
+  multiple rows
+- GH#7110: Monetdb Query parsing consistency issues in the latest release
+  (Remote Table)
+
+* Mon May  3 2021 Sjoerd Mullender  - 11.39.17-20210503
+- gdk: A bug that would very occasionally produce an error "strPut: incorrectly
+  encoded UTF-8", even when no incorrectly coded characters are used
+  at all, has been fixed.  It was the result of a rare combination of
+  strings having been added to the column that caused essentially an
+  off-by-one type of error to occur.
+
+* Mon May  3 2021 Sjoerd Mullender  - 11.39.17-20210503
+- merovingian: When stopping monetdbd using the `monetdbd stop' command, this 
command
+  now waits for 5 seconds longer than the exittimeout value before it
+  kills the monetdbd daemon instead of only 30 seconds total (or until
+  that daemon stops earlier).  This gives the daemon enough time to
+  terminate the mserver5 processes that it is managing.  If exittimeout
+  is negative, the daemon and the monetdbd process initiating the stop
+  wait indefinitely until the mserver5 processes have stopped.
+
+* Mon May  3 2021 Sjoerd Mullender  - 11.39.17-20210503
+- sql: A bug where a sequence of TRUNCATE TABLE and COPY INTO the just
+  truncated table would result in success being reported to both queries,
+  but the table still being empty afterwards, has been fixed.
+
+* Fri Apr 23 2021 Sjoerd Mullender  - 11.39.17-20210503
+- NT: Added the monetdbe library to the Windows installer.
+
 * Fri Apr 02 2021 Sjoerd Mullender  - 11.39.15-20210402
 - Rebuilt.
 - GH#6786: function json.isvalid(js json) is not useful, could be removed
diff --git a/NT/ChangeLog-Archive b/NT/ChangeLog-Archive
new file mode 100644
--- /dev/null
+++ b/NT/ChangeLog-Archive
@@ -0,0 +1,6 @@
+# DO NOT EDIT THIS FILE -- MAINTAINED AUTOMATICALLY
+# This file contains past ChangeLog entries
+
+* Fri Apr 23 2021 Sjoerd Mullender  - 11.39.17-20210503
+- Added the monetdbe library to the Windows installer.
+
diff --git a/NT/ChangeLog.Oct2020 b/NT/ChangeLog.Oct2020
--- a/NT/ChangeLog.Oct2020
+++ b/NT/ChangeLog.Oct2020
@@ -1,6 +1,3 @@
 # ChangeLog file for NT
 # This file is updated with Maddlog
 
-* Fri Apr 23 2021 Sjoerd Mullender 
-- Added the monetdbe library to the Windows installer.
-
diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake
--- a/cmake/monetdb-versions.cmake
+++ b/cmake/monetdb-versions.cmake
@@ -53,7 +53,7 @@ set(MONETDB_VERSION "${MONETDB_VERSION_M
 # common/options and common/utils)
 set(GDK_VERSION_CURRENT "22")
 set(GDK_VERSION_MINOR "1")
-set(GDK_VERSION_PATCH "3")
+set(GDK_VERSION_PATCH "4")
 math(EXPR GDK_VERSION_MAJOR "${GDK_VERSION_CURRENT} - ${GDK_VERSION_MINOR}")
 set(GDK_VERSION 
"${GDK_VERSION_MAJOR}.${GDK_VERSION_MINOR}.${GDK_VERSION_PATCH}")
 
@@ -67,14 +67,14 @@ 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_MINOR "0")
-set(MONETDB5_VERSION_PATCH "6")
+set(MONETDB5_VERSION_PATCH "7")
 math(EXPR MONETDB5_VERSION_MAJOR "${MONETDB5_VERSION_CURRENT} - 
${MONETDB5_VERSION_MINOR}")
 set(MONETDB5_VERSION 
"${MONETDB5_VERSION_MAJOR}.${MONETDB5_VERSION_M

MonetDB: Oct2020 - Setting tags Oct2020_17 and Oct2020_SP5_relea...

2021-05-03 Thread Sjoerd Mullender
Changeset: fdb8bfcaf968 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/fdb8bfcaf968
Modified Files:
.hgtags
Branch: Oct2020
Log Message:

Setting tags Oct2020_17 and Oct2020_SP5_release for the release build.


diffs (9 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -800,3 +800,5 @@ 17d27ad30941c81e4bc700300912e84e9b9a8c37
 17d27ad30941c81e4bc700300912e84e9b9a8c37 Oct2020_SP3_release
 6b71a8cc3498561815ac88d6c652922359efd13a Oct2020_15
 6b71a8cc3498561815ac88d6c652922359efd13a Oct2020_SP4_release
+5cb19dc0880d1fb4799cd0f8019d1c2b430c503e Oct2020_17
+5cb19dc0880d1fb4799cd0f8019d1c2b430c503e Oct2020_SP5_release
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Oct2020 - Moved contents of ChangeLog.Oct2020 to MonetD...

2021-05-03 Thread Sjoerd Mullender
Changeset: 5cb19dc0880d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5cb19dc0880d
Added Files:
NT/ChangeLog-Archive
Modified Files:
MonetDB.spec
NT/ChangeLog.Oct2020
debian/changelog
gdk/ChangeLog-Archive
gdk/ChangeLog.Oct2020
misc/packages/deb/changelog
misc/packages/rpm/changelog
sql/ChangeLog-Archive
sql/ChangeLog.Oct2020
tools/merovingian/ChangeLog-Archive
tools/merovingian/ChangeLog.Oct2020
Branch: Oct2020
Log Message:

Moved contents of ChangeLog.Oct2020 to MonetDB.spec, debian/changelog and 
ChangeLog-Archive.


diffs (truncated from 324 to 300 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -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-SP4/%{name}-%{version}.tar.bz2
+Source: 
https://www.monetdb.org/downloads/sources/Oct2020-SP5/%{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,41 @@ else
 fi
 
 %changelog
+* Mon May 03 2021 Sjoerd Mullender  - 11.39.17-20210503
+- Rebuilt.
+- GH#2430: JDBC: support for streams
+- GH#3336: DB files not removed if all rows are deleted, even after restart
+- GH#7104: Monetdbe NTILE function does not produce correct ordering
+- GH#7108: Monetdb crashes on query execution
+- GH#7109: MERGE Statement incorrectly reports that input relation matches
+  multiple rows
+- GH#7110: Monetdb Query parsing consistency issues in the latest release
+  (Remote Table)
+
+* Mon May  3 2021 Sjoerd Mullender  - 11.39.17-20210503
+- gdk: A bug that would very occasionally produce an error "strPut: incorrectly
+  encoded UTF-8", even when no incorrectly coded characters are used
+  at all, has been fixed.  It was the result of a rare combination of
+  strings having been added to the column that caused essentially an
+  off-by-one type of error to occur.
+
+* Mon May  3 2021 Sjoerd Mullender  - 11.39.17-20210503
+- merovingian: When stopping monetdbd using the `monetdbd stop' command, this 
command
+  now waits for 5 seconds longer than the exittimeout value before it
+  kills the monetdbd daemon instead of only 30 seconds total (or until
+  that daemon stops earlier).  This gives the daemon enough time to
+  terminate the mserver5 processes that it is managing.  If exittimeout
+  is negative, the daemon and the monetdbd process initiating the stop
+  wait indefinitely until the mserver5 processes have stopped.
+
+* Mon May  3 2021 Sjoerd Mullender  - 11.39.17-20210503
+- sql: A bug where a sequence of TRUNCATE TABLE and COPY INTO the just
+  truncated table would result in success being reported to both queries,
+  but the table still being empty afterwards, has been fixed.
+
+* Fri Apr 23 2021 Sjoerd Mullender  - 11.39.17-20210503
+- NT: Added the monetdbe library to the Windows installer.
+
 * Fri Apr 02 2021 Sjoerd Mullender  - 11.39.15-20210402
 - Rebuilt.
 - GH#6786: function json.isvalid(js json) is not useful, could be removed
diff --git a/NT/ChangeLog-Archive b/NT/ChangeLog-Archive
new file mode 100644
--- /dev/null
+++ b/NT/ChangeLog-Archive
@@ -0,0 +1,6 @@
+# DO NOT EDIT THIS FILE -- MAINTAINED AUTOMATICALLY
+# This file contains past ChangeLog entries
+
+* Fri Apr 23 2021 Sjoerd Mullender  - 11.39.17-20210503
+- Added the monetdbe library to the Windows installer.
+
diff --git a/NT/ChangeLog.Oct2020 b/NT/ChangeLog.Oct2020
--- a/NT/ChangeLog.Oct2020
+++ b/NT/ChangeLog.Oct2020
@@ -1,6 +1,3 @@
 # ChangeLog file for NT
 # This file is updated with Maddlog
 
-* Fri Apr 23 2021 Sjoerd Mullender 
-- Added the monetdbe library to the Windows installer.
-
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,53 @@
+monetdb (11.39.17) unstable; urgency=low
+
+  * Rebuilt.
+  * GH#2430: JDBC: support for streams
+  * GH#3336: DB files not removed if all rows are deleted, even after restart
+  * GH#7104: Monetdbe NTILE function does not produce correct ordering
+  * GH#7108: Monetdb crashes on query execution
+  * GH#7109: MERGE Statement incorrectly reports that input relation matches
+multiple rows
+  * GH#7110: Monetdb Query parsing consistency issues in the latest release
+(Remote Table)
+
+ -- Sjoerd Mullender   Mon, 03 May 2021 18:04:16 +0200
+
+monetdb (11.39.17) unstable; urgency=low
+
+  * gdk: A bug that would very occasionally produce an error "strPut: 
incorrectly
+encoded UTF-8", even when no incorrectly coded characters are used
+at all, has been fixed.  It was the result of a rare combination of
+strings having been added to the column that caused essentially an
+off-by-one type of error to occur.
+
+ -- Sjoerd Mullender   Mon, 3 May 2021 18:04:16 +

MonetDB: Oct2020 - Updated library versions.

2021-05-03 Thread Sjoerd Mullender
Changeset: 8b6449f77dae for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8b6449f77dae
Modified Files:
cmake/monetdb-versions.cmake
Branch: Oct2020
Log Message:

Updated library versions.


diffs (29 lines):

diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake
--- a/cmake/monetdb-versions.cmake
+++ b/cmake/monetdb-versions.cmake
@@ -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 "3")
+set(GDK_VERSION_REVISION "4")
 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,14 +64,14 @@ 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 "6")
+set(MONETDB5_VERSION_REVISION "7")
 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}")
 
 # version of the MONETDBE library (subdirectory tools/monetdbe)
 set(MONETDBE_VERSION_CURRENT "1")
-set(MONETDBE_VERSION_REVISION "2")
+set(MONETDBE_VERSION_REVISION "3")
 set(MONETDBE_VERSION_AGE "0")
 math(EXPR MONETDBE_VERSION_MAJOR "${MONETDBE_VERSION_CURRENT} - 
${MONETDBE_VERSION_AGE}")
 set(MONETDBE_VERSION 
"${MONETDBE_VERSION_MAJOR}.${MONETDBE_VERSION_AGE}.${MONETDBE_VERSION_REVISION}")
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - Merge with Oct2020 branch, not changing any f...

2021-05-03 Thread Sjoerd Mullender
Changeset: 4b262a848d00 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4b262a848d00
Modified Files:
.bumpversion.cfg
MonetDB.spec
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/winsetup/setup.rc
cmake/monetdb-versions.cmake
gdk/libbat.rc
monetdb5/tools/libmonetdb5.rc
Branch: Jul2021
Log Message:

Merge with Oct2020 branch, not changing any files.

___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Oct2020 - Pre-release version number update.

2021-05-03 Thread Sjoerd Mullender
Changeset: edfbd2bd4bda for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/edfbd2bd4bda
Modified Files:
.bumpversion.cfg
MonetDB.spec
clients/mapilib/mapi.rc
clients/odbc/driver/driver.rc
clients/odbc/winsetup/setup.rc
cmake/monetdb-versions.cmake
gdk/libbat.rc
monetdb5/tools/libmonetdb5.rc
Branch: Oct2020
Log Message:

Pre-release version number update.


diffs (189 lines):

diff --git a/.bumpversion.cfg b/.bumpversion.cfg
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 11.39.16
+current_version = 11.39.17
 commit = False
 tag = False
 
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.16
+%global version 11.39.17
 %{!?buildno: %global buildno %(date +%Y%m%d)}
 
 # Use bcond_with to add a --with option; i.e., "without" is default.
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,16)
-  PRODUCTVERSION version(11,39,16)
+  FILEVERSION version(11,39,17)
+  PRODUCTVERSION version(11,39,17)
   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,16)
+  VALUE "FileVersion", sversion(11,39,17)
   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,16)
+  VALUE "ProductVersion", sversion(11,39,17)
   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,16)
-  PRODUCTVERSION version(11,39,16)
+  FILEVERSION version(11,39,17)
+  PRODUCTVERSION version(11,39,17)
   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,16)
+  VALUE "FileVersion", sversion(11,39,17)
   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,16)
+  VALUE "ProductVersion", sversion(11,39,17)
   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,16)
- PRODUCTVERSION version(11,39,16)
+ FILEVERSION version(11,39,17)
+ PRODUCTVERSION version(11,39,17)
  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,16)
+VALUE "FileVersion", sversion(11,39,17)
 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,16)
+VALUE "ProductVersion", sversion(11,39,17)
 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,10 +8,10 @@
 
 set(MONETDB_VERSION_MAJOR "11")
 set(MONETDB_VERSION_MINOR "39")
-set(MONETDB_VERSION_PATCH "16")
+set(MONETDB_VERSION_PATCH "17")
 
 if(RELEASE_VERSION)
-  set(MONETDB_RELEASE "unreleased")
+  set(MONETDB_RELEASE "Oct2020-SP5")
 endif()
 set(MONETDB_VERSION 
"${MONETDB_VERSION_MAJOR}.${MONETDB_VERSION_MINOR}.${MONETDB_VERSION_PATCH}")
 
diff --git a/gdk/libbat.rc b/gdk/libbat.rc
--- a/gdk/libbat.rc
+++ b/gdk/libbat.rc
@@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG

MonetDB: qcancel - Merge with default branch.

2021-05-03 Thread Sjoerd Mullender
Changeset: 573474d3a4db for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/573474d3a4db
Branch: qcancel
Log Message:

Merge with default branch.


diffs (truncated from 1293 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.40.0
+current_version = 11.42.0
 commit = False
 tag = False
 
diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -800,3 +800,4 @@ 17d27ad30941c81e4bc700300912e84e9b9a8c37
 17d27ad30941c81e4bc700300912e84e9b9a8c37 Oct2020_SP3_release
 6b71a8cc3498561815ac88d6c652922359efd13a Oct2020_15
 6b71a8cc3498561815ac88d6c652922359efd13a Oct2020_SP4_release
+02fd591b7d3311d566007e1bfb0c59682b17f12c Jul2021_root
diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,3 @@
 # ChangeLog file for devel
 # This file is updated with Maddlog
 
-* Thu Apr 15 2021 svetlin 
-- preserve in query comments
-
diff --git a/ChangeLog b/ChangeLog.Jul2021
copy from ChangeLog
copy to ChangeLog.Jul2021
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -1,5 +1,5 @@
 %global name MonetDB
-%global version 11.40.0
+%global version 11.42.0
 %{!?buildno: %global buildno %(date +%Y%m%d)}
 
 # Use bcond_with to add a --with option; i.e., "without" is default.
diff --git a/clients/ChangeLog b/clients/ChangeLog.Jul2021
copy from clients/ChangeLog
copy to clients/ChangeLog.Jul2021
diff --git a/clients/mapilib/ChangeLog b/clients/mapilib/ChangeLog.Jul2021
copy from clients/mapilib/ChangeLog
copy to clients/mapilib/ChangeLog.Jul2021
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,40,0)
-  PRODUCTVERSION version(11,40,0)
+  FILEVERSION version(11,42,0)
+  PRODUCTVERSION version(11,42,0)
   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,40,0)
+  VALUE "FileVersion", sversion(11,42,0)
   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,40,0)
+  VALUE "ProductVersion", sversion(11,42,0)
   VALUE "SpecialBuild", "\0"
 END
   END
diff --git a/clients/odbc/ChangeLog b/clients/odbc/ChangeLog.Jul2021
copy from clients/odbc/ChangeLog
copy to clients/odbc/ChangeLog.Jul2021
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,40,0)
-  PRODUCTVERSION version(11,40,0)
+  FILEVERSION version(11,42,0)
+  PRODUCTVERSION version(11,42,0)
   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,40,0)
+  VALUE "FileVersion", sversion(11,42,0)
   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,40,0)
+  VALUE "ProductVersion", sversion(11,42,0)
   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,40,0)
- PRODUCTVERSION version(11,40,0)
+ FILEVERSION version(11,42,0)
+ PRODUCTVERSION version(11,42,0)
  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,40,0)
+VALUE "FileVersion", sversion(11,42,0)
 VALUE "InternalName", "MonetODBCs.dll"
 VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2021"
 VALUE "OriginalFilename", "MonetODBCs.dll"
 VALUE "ProductName", "MonetDB SQL Server"
-

MonetDB: qcancel - Use nested loops for checking query cancellat...

2021-05-03 Thread Sjoerd Mullender
Changeset: b63018f011c1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b63018f011c1
Modified Files:
gdk/gdk.h
gdk/gdk_aggr.c
gdk/gdk_calc.c
gdk/gdk_calc_compare.h
gdk/gdk_cross.c
gdk/gdk_group.c
gdk/gdk_hash.c
gdk/gdk_join.c
Branch: qcancel
Log Message:

Use nested loops for checking query cancellation timeouts.
The loops are hidden behind some "interesting" macros.


diffs (truncated from 3755 to 300 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -2208,34 +2208,84 @@ gdk_export BAT *BATsample_with_seed(BAT 
  */
 #define MAXPARAMS  32
 
-#define CHECK_QRY_TIMEOUT_STEP 1
+#define CHECK_QRY_TIMEOUT_SHIFT14
+#define CHECK_QRY_TIMEOUT_STEP (1 << CHECK_QRY_TIMEOUT_SHIFT)
+#define CHECK_QRY_TIMEOUT_MASK (CHECK_QRY_TIMEOUT_STEP - 1)
 
 #define TIMEOUT_MSG "Timeout was reached!"
 
-#define TIMEOUT_HANDLER(rtpe)  \
-   do {\
-   GDKerror(TIMEOUT_MSG);  \
-   return rtpe;\
+#define TIMEOUT_HANDLER(rtpe)  \
+   do {\
+   GDKerror(TIMEOUT_MSG);  \
+   return rtpe;\
} while(0)
 
-#define GOTO_LABEL_TIMEOUT_HANDLER(label)  \
-   do {\
-   GDKerror(TIMEOUT_MSG);  \
-   goto label; \
+#define GOTO_LABEL_TIMEOUT_HANDLER(label)  \
+   do {\
+   GDKerror(TIMEOUT_MSG);  \
+   goto label; \
} while(0)
 
+#define GDK_CHECK_TIMEOUT_BODY(timeoffset, callback)   \
+   do {\
+   if (timeoffset && GDKusec() > timeoffset) { \
+   callback;   \
+   }   \
+   } while (0)
+
 #define GDK_CHECK_TIMEOUT(timeoffset, counter, callback)   \
do {\
-   if (timeoffset) {   \
-   if (counter > CHECK_QRY_TIMEOUT_STEP) { \
-   if (GDKusec() > timeoffset) {   \
-   callback;   \
+   if (timeoffset) {   \
+   if (counter > CHECK_QRY_TIMEOUT_STEP) { \
+   GDK_CHECK_TIMEOUT_BODY(timeoffset, callback); \
+   counter = 0;\
+   } else {\
+   counter++;  \
}   \
-   counter = 0;\
-   } else {\
-   counter++;  \
}   \
-   }   \
+   } while (0)
+
+/* here are some useful construct to iterate a number of times (the
+ * REPEATS argument--only evaluated once) and checking for a timeout
+ * every once in a while; the TIMEOFFSET value is a variable of type lng
+ * which is either 0 or the GDKusec() compatible time after which the
+ * loop should terminate; check for this condition after the loop using
+ * the TIMEOUT_CHECK macro; in order to break out of any of these loops,
+ * use TIMEOUT_LOOP_BREAK since plain break won't do it; it is perfectly
+ * ok to use continue inside the body */
+
+/* use IDX as a loop variable, initializing it to 0 and incrementing it
+ * on each iteration */
+#define TIMEOUT_LOOP_IDX(IDX, REPEATS, TIMEOFFSET) \
+   for (BUN REPS = (IDX = 0, (REPEATS)); REPS > 0; REPS = 0) /* "loops" at 
most once */ \
+   for (BUN CTR1 = 0, END1 = (REPS + CHECK_QRY_TIMEOUT_MASK) >> 
CHECK_QRY_TIMEOUT_SHIFT; CTR1 < END1 && TIMEOFFSET >= 0; CTR1++, TIMEOFFSET = 
TIMEOFFSET > 0 && GDKusec() > TIMEOFFSET ? -1 : TIMEOFFSET) \
+   for (BUN CTR2 = 0, END2 = CTR1 == END1 - 1 ? REPS & 
CHECK_QRY_TIMEOUT_MASK : CHECK_QRY_TIMEOUT_STEP; CTR2 < END2; CTR2++, IDX++)
+
+/* declare and use IDX as a loop variable, initializing it to 0 and
+ * incrementing it on each iteration */
+#define TIMEOUT_LOOP_IDX_DECL(IDX, REPEATS, 

MonetDB: qcancel - Deal with recursive calls of runMALsequence.

2021-05-03 Thread Sjoerd Mullender
Changeset: 9077a6543b8f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/9077a6543b8f
Modified Files:
monetdb5/mal/mal_interpreter.c
Branch: qcancel
Log Message:

Deal with recursive calls of runMALsequence.


diffs (31 lines):

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
@@ -513,6 +513,8 @@ str runMALsequence(Client cntxt, MalBlkP
exceptionVar = -1;
 
QryCtx qry_ctx = {.querytimeout=cntxt->querytimeout, 
.starttime=mb->starttime};
+   /* save, in case this function is called recursively */
+   QryCtx *qry_ctx_save = MT_thread_get_qry_ctx();
MT_thread_set_qry_ctx(&qry_ctx);
 
while (stkpc < mb->stop && stkpc != stoppc) {
@@ -1185,7 +1187,9 @@ str runMALsequence(Client cntxt, MalBlkP
runtimeProfileFinish(cntxt, mb, stk);
if ( backup != backups) GDKfree(backup);
if ( garbage != garbages) GDKfree(garbage);
-   return yieldFactory(mb, pci, stkpc);
+   ret = yieldFactory(mb, pci, stkpc);
+   MT_thread_set_qry_ctx(qry_ctx_save);
+   return ret;
case RETURNsymbol:
/* Return from factory involves cleanup */
 
@@ -1224,6 +1228,7 @@ str runMALsequence(Client cntxt, MalBlkP
stkpc= mb->stop;
}
}
+   MT_thread_set_qry_ctx(qry_ctx_save);
 
/* if we could not find the exception variable, cascade a new one */
if (exceptionVar >= 0) {
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - Fix and approve upgrade. Fixes #7115.

2021-05-03 Thread Sjoerd Mullender
Changeset: f6ce3817349c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f6ce3817349c
Modified Files:
sql/backends/monet5/sql_upgrades.c
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade/Tests/upgrade.stable.out
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade/Tests/upgrade.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: Jul2021
Log Message:

Fix and approve upgrade.  Fixes #7115.


diffs (truncated from 434 to 300 lines):

diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -2382,9 +2382,9 @@ sql_update_jul2021(Client c, mvc *sql, c
"drop procedure 
sys.flush_log();\n");
 
pos += snprintf(buf + pos, bufsize - pos,
-   "drop procedure 
sys.deltas(string);\n"
-   "drop procedure 
sys.deltas(string, string);\n"
-   "drop procedure 
sys.deltas(string, string, string);\n");
+   "drop function 
sys.deltas(string);\n"
+   "drop function 
sys.deltas(string, string);\n"
+   "drop function 
sys.deltas(string, string, string);\n");
pos += snprintf(buf + pos, bufsize - pos,
"create function 
sys.deltas (\"schema\" string)\n"
"returns table (id int, 
segments bigint, \"all\" bigint, inserted bigint, updates bigint, deletes 
bigint, level int)\n"
diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
@@ -4139,6 +4139,18 @@ drop procedure sys.shrink(string, string
 drop procedure sys.reuse(string, string);
 drop procedure sys.vacuum(string, string);
 drop procedure sys.flush_log();
+drop function sys.deltas(string);
+drop function sys.deltas(string, string);
+drop function sys.deltas(string, string, string);
+create function sys.deltas ("schema" string)
+returns table (id int, segments bigint, "all" bigint, inserted bigint, updates 
bigint, deletes bigint, level int)
+external name sql.deltas;
+create function sys.deltas ("schema" string, "table" string)
+returns table (id int, segments bigint, "all" bigint, inserted bigint, updates 
bigint, deletes bigint, level int)
+external name sql.deltas;
+create function sys.deltas ("schema" string, "table" string, "column" string)
+returns table (id int, segments bigint, "all" bigint, inserted bigint, updates 
bigint, deletes bigint, level int)
+external name sql.deltas;
 delete from sys.dependencies d where d.depend_id = (select id from 
sys.functions where name = 'getproj4' and schema_id = 2000) and id in (select 
id from sys._columns where name not in ('proj4text', 'srid'));
 drop function json.isobject(string);
 drop function json.isarray(string);
diff --git 
a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128 
b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
--- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
@@ -4139,6 +4139,18 @@ drop procedure sys.shrink(string, string
 drop procedure sys.reuse(string, string);
 drop procedure sys.vacuum(string, string);
 drop procedure sys.flush_log();
+drop function sys.deltas(string);
+drop function sys.d

MonetDB: Jul2021 - Do a better revert of not null property when ...

2021-05-03 Thread Pedro Ferreira
Changeset: 7ce2c3aedaed for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/7ce2c3aedaed
Modified Files:
sql/server/rel_unnest.c
Branch: Jul2021
Log Message:

Do a better revert of not null property when am outer join is generated while 
unnesting


diffs (truncated from 319 to 300 lines):

diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -1555,37 +1555,92 @@ static sql_rel *
return rel;
 }
 
+static void reset_has_nil(sql_rel *rel, sql_exp *e);
+
 static void
-reset_has_nil(sql_exp *e)
+exps_reset_has_nil(sql_rel *rel, list *exps)
+{
+   if (!list_empty(exps))
+   for(node *n=exps->h; n; n=n->next)
+   reset_has_nil(rel, n->data);
+}
+
+static void
+reset_has_nil(sql_rel *rel, sql_exp *e)
 {
-   set_has_nil(e);
-   if (is_convert(e->type))
-   reset_has_nil(e->l);
+   switch (e->type) {
+   case e_column: {
+   if (((is_right(rel->op) || is_full(rel->op)) && 
rel_find_exp(rel->l, e) != NULL) ||
+   ((is_left(rel->op) || is_full(rel->op)) && 
rel_find_exp(rel->r, e) != NULL))
+   set_has_nil(e);
+   } break;
+   case e_convert: {
+   reset_has_nil(rel, e->l);
+   if (has_nil((sql_exp*)e->l))
+   set_has_nil(e);
+   } break;
+   case e_func: {
+   sql_subfunc *f = e->f;
+
+   exps_reset_has_nil(rel, e->l);
+   if (!f->func->semantics && e->l && have_nil(e->l))
+   set_has_nil(e);
+   } break;
+   case e_aggr: {
+   sql_subfunc *a = e->f;
+
+   exps_reset_has_nil(rel, e->l);
+   if ((a->func->s || strcmp(a->func->base.name, "count") != 0) && 
!a->func->semantics && !has_nil(e) && e->l && have_nil(e->l))
+   set_has_nil(e);
+   } break;
+   case e_cmp: {
+   if (e->flag == cmp_or || e->flag == cmp_filter) {
+   exps_reset_has_nil(rel, e->l);
+   exps_reset_has_nil(rel, e->r);
+   if (have_nil(e->l) || have_nil(e->r))
+   set_has_nil(e);
+   } else if (e->flag == cmp_in || e->flag == cmp_notin) {
+   reset_has_nil(rel, e->l);
+   exps_reset_has_nil(rel, e->r);
+   if (has_nil((sql_exp*)e->l) || have_nil(e->r))
+   set_has_nil(e);
+   } else {
+   reset_has_nil(rel, e->l);
+   reset_has_nil(rel, e->r);
+   if (e->f)
+   reset_has_nil(rel, e->f);
+   if (!is_semantics(e) && (((sql_exp*)e->l) || 
has_nil((sql_exp*)e->r) || (e->f && has_nil((sql_exp*)e->f
+   set_has_nil(e);
+   }
+   } break;
+   default:
+   break;
+   }
 }
 
 static sql_exp *
-rewrite_inner(mvc *sql, sql_rel *rel, sql_rel *inner, operator_type *op)
+rewrite_inner(mvc *sql, sql_rel *rel, sql_rel *inner, operator_type op, 
sql_rel **rewrite)
 {
int single = is_single(inner);
sql_rel *d = NULL;
 
reset_single(inner);
if (single && is_project(rel->op))
-   *op = op_left;
+   op = op_left;
 
if (!is_project(inner->op))
inner = rel_project(sql->sa, inner, rel_projections(sql, inner, 
NULL, 1, 1));
 
if (is_join(rel->op)){ /* TODO handle set operators etc */
if (is_right(rel->op))
-   d = rel->l = rel_crossproduct(sql->sa, rel->l, inner, 
*op);
+   d = rel->l = rel_crossproduct(sql->sa, rel->l, inner, 
op);
else
-   d = rel->r = rel_crossproduct(sql->sa, rel->r, inner, 
*op);
+   d = rel->r = rel_crossproduct(sql->sa, rel->r, inner, 
op);
if (single)
set_single(d);
} else if (is_project(rel->op)){ /* projection -> op_left */
-   if (rel->l || single || *op == op_left) {
-   if ((single || *op == op_left) && !rel->l)
+   if (rel->l || single || op == op_left) {
+   if ((single || op == op_left) && !rel->l)
rel->l = rel_project(sql->sa, rel->l, 
append(sa_list(sql->sa), exp_atom_bool(sql->sa, 1)));
d = rel->l = rel_crossproduct(sql->sa, rel->l, inner, 
op_left);
if (single)
@@ -1594,22 +1649,22 @@ rewrite_inner(mvc *sql, sql_rel *rel, sq
d = rel->l = inner;
}
} else {
-   d = rel->l = rel_crossproduct(sql->sa, rel->l, inner, *op);
+   d = rel->l = rel_crossproduct(sql->sa, rel->l, inner, op);
if (single)

MonetDB: Jul2021 - merged

2021-05-03 Thread Niels Nes
Changeset: 53a360b31bfe for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/53a360b31bfe
Branch: Jul2021
Log Message:

merged


diffs (135 lines):

diff --git a/documentation/source/manual_pages/monetdb.rst 
b/documentation/source/manual_pages/monetdb.rst
--- a/documentation/source/manual_pages/monetdb.rst
+++ b/documentation/source/manual_pages/monetdb.rst
@@ -1,3 +1,7 @@
+===
+MONETDB
+===
+
 NAME
 
 
diff --git a/documentation/source/manual_pages/monetdbd.rst.in 
b/documentation/source/manual_pages/monetdbd.rst.in
--- a/documentation/source/manual_pages/monetdbd.rst.in
+++ b/documentation/source/manual_pages/monetdbd.rst.in
@@ -20,17 +20,17 @@ DESCRIPTION
 meant to be used as daemon, but it also allows to setup and change the
 configuration of a dbfarm. The use of *monetdbd* is either as
 user-oriented way to configure, start and stop a database farm, or to be
-started from a startup script, such as from */etc/init.d/* on Linux
-systems or *smf*\ (5) on Solaris systems, as part of a system startup.
+started from a startup script, such as from *systemd*\ (1) on Linux
+systems, as part of a system startup.
 
 *Monetdbd* is the system formerly known as *merovingian*. It was renamed
 to *monetdbd* since the name *merovingian* proved to be confusing to
 most regular end-users. Internally, *monetdbd* uses the name
 *merovingian* at many places for historical reasons.
 
-A *monetdbd* instance manages one local cluster based, which is a
-directory in the system, referred to as the *dbfarm*. Nowadays, the
-dbfarm location always has to be given as argument to *monetdbd*.
+A *monetdbd* instance manages one local cluster of databases, which is a
+directory in the system, referred to as the *dbfarm*. The dbfarm
+location must always be given as argument to *monetdbd*.
 
 Within its local cluster *monetdbd* takes care of starting up databases
 when necessary, and stopping them either upon request via *monetdb*\ (1)
@@ -57,7 +57,7 @@ The commands for *monetdbd* are **create
 initializing a dbfarm, starting and stopping the MonetDB Database
 Server, and retrieving or setting options.
 
-**create dbfarm**
+**create** *dbfarm*
Initializes a new database farm, such that a MonetDB Database Server
can be started on that location. All necessary directories are
attempted to be created, and an initial properties file is created in
@@ -72,7 +72,13 @@ Server, and retrieving or setting option
 
 **stop** *dbfarm*
Sends a stop signal to the *monetdbd* process responsible for the
-   given dbfarm.
+   given dbfarm. If the **exittimeout** value is non-zero (see below),
+   all mserver processes will be sent a termination signal. The current
+   process will wait for the manager process to terminate, but sends a
+   SIGKILL signal if waiting takes longer than 5 seconds more than the
+   value of exittimeout. If exittimeout is negative, both monetdbd
+   processes involved will wait until the servers have all terminated
+   and no extra signals are sent.
 
 **get** <**all** \| *property*\ [,\ *property*\ [,..]]> *dbfarm*
Prints the requested properties, or all known properties, for the
@@ -118,15 +124,32 @@ using the **set** command. The following
This property specifies which TCP port *monetdbd* should listen to
for connection requests. Defaults to 5.
 
-**ipv6**
-   This property forces *monetdbd* to bind connections on IPv6 addresses
-   only. Defaults to false.
-
 **listenaddr**
This property specifies an address that is allowed to connect to the
-   server. The user can specify one IP(v6) address, or use the 0.0.0.0
-   notation to allow connections from everywhere. Defaults to localhost
-   (127.0.0.1).
+   server. The following possibilities exist:
+
+   **localhost**
+  The server only listens on the IPv4 and IPv6 loopback interface
+  (if available). This is the default.
+
+   **127.0.0.1**
+  The server only listens on the IPv4 loopback interface.
+
+   **::1**
+  The server only listens on the IPv6 loopback interface.
+
+   **all**
+  The server listens on all available IPv4 and IPv6 interfaces.
+
+   **0.0.0.0**
+  The server listens on all available IPv4 interfaces.
+
+   **::**
+  The server listens on all available IPv6 interfaces.
+
+   *hostname*
+  The server listens on the interface designated by *hostname* which
+  is looked up using the normal hostname lookup facilities.
 
 **control**
For remote management of *monetdbd*, the **control** property
diff --git a/documentation/source/manual_pages/mserver5.rst.in 
b/documentation/source/manual_pages/mserver5.rst.in
--- a/documentation/source/manual_pages/mserver5.rst.in
+++ b/documentation/source/manual_pages/mserver5.rst.in
@@ -34,10 +34,11 @@ OPERATION
 =
 
 When the build-time configuration did not disable this, a *mserver5*
-process presents the user with server startup information and internal
-exceptions due to errors in commands sent by clients. The architecture

MonetDB: Jul2021 - improved check for valid segment

2021-05-03 Thread Niels Nes
Changeset: 126a613577a2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/126a613577a2
Modified Files:
sql/storage/bat/bat_storage.c
Branch: Jul2021
Log Message:

improved check for valid segment


diffs (12 lines):

diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -517,7 +517,7 @@ segs_end( segments *segs, sql_trans *tr)
segment *s = segs->h, *l = NULL;
 
for(;s; s = s->next) {
-   if (VALID_4_READ(s->ts, tr) || (s->deleted && s->oldts && s->ts 
> TRANSACTION_ID_BASE && s->oldts < tr->ts))
+   if (VALID_4_READ(s->ts, tr) || (s->deleted && s->oldts && s->ts 
> tr->ts && s->oldts < tr->ts))
l = s;
}
if (!l)
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - Merge with Oct2020 branch.

2021-05-03 Thread Sjoerd Mullender
Changeset: b8e5a9221054 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b8e5a9221054
Branch: Jul2021
Log Message:

Merge with Oct2020 branch.


diffs (135 lines):

diff --git a/documentation/source/manual_pages/monetdb.rst 
b/documentation/source/manual_pages/monetdb.rst
--- a/documentation/source/manual_pages/monetdb.rst
+++ b/documentation/source/manual_pages/monetdb.rst
@@ -1,3 +1,7 @@
+===
+MONETDB
+===
+
 NAME
 
 
diff --git a/documentation/source/manual_pages/monetdbd.rst.in 
b/documentation/source/manual_pages/monetdbd.rst.in
--- a/documentation/source/manual_pages/monetdbd.rst.in
+++ b/documentation/source/manual_pages/monetdbd.rst.in
@@ -20,17 +20,17 @@ DESCRIPTION
 meant to be used as daemon, but it also allows to setup and change the
 configuration of a dbfarm. The use of *monetdbd* is either as
 user-oriented way to configure, start and stop a database farm, or to be
-started from a startup script, such as from */etc/init.d/* on Linux
-systems or *smf*\ (5) on Solaris systems, as part of a system startup.
+started from a startup script, such as from *systemd*\ (1) on Linux
+systems, as part of a system startup.
 
 *Monetdbd* is the system formerly known as *merovingian*. It was renamed
 to *monetdbd* since the name *merovingian* proved to be confusing to
 most regular end-users. Internally, *monetdbd* uses the name
 *merovingian* at many places for historical reasons.
 
-A *monetdbd* instance manages one local cluster based, which is a
-directory in the system, referred to as the *dbfarm*. Nowadays, the
-dbfarm location always has to be given as argument to *monetdbd*.
+A *monetdbd* instance manages one local cluster of databases, which is a
+directory in the system, referred to as the *dbfarm*. The dbfarm
+location must always be given as argument to *monetdbd*.
 
 Within its local cluster *monetdbd* takes care of starting up databases
 when necessary, and stopping them either upon request via *monetdb*\ (1)
@@ -57,7 +57,7 @@ The commands for *monetdbd* are **create
 initializing a dbfarm, starting and stopping the MonetDB Database
 Server, and retrieving or setting options.
 
-**create dbfarm**
+**create** *dbfarm*
Initializes a new database farm, such that a MonetDB Database Server
can be started on that location. All necessary directories are
attempted to be created, and an initial properties file is created in
@@ -72,7 +72,13 @@ Server, and retrieving or setting option
 
 **stop** *dbfarm*
Sends a stop signal to the *monetdbd* process responsible for the
-   given dbfarm.
+   given dbfarm. If the **exittimeout** value is non-zero (see below),
+   all mserver processes will be sent a termination signal. The current
+   process will wait for the manager process to terminate, but sends a
+   SIGKILL signal if waiting takes longer than 5 seconds more than the
+   value of exittimeout. If exittimeout is negative, both monetdbd
+   processes involved will wait until the servers have all terminated
+   and no extra signals are sent.
 
 **get** <**all** \| *property*\ [,\ *property*\ [,..]]> *dbfarm*
Prints the requested properties, or all known properties, for the
@@ -118,15 +124,32 @@ using the **set** command. The following
This property specifies which TCP port *monetdbd* should listen to
for connection requests. Defaults to 5.
 
-**ipv6**
-   This property forces *monetdbd* to bind connections on IPv6 addresses
-   only. Defaults to false.
-
 **listenaddr**
This property specifies an address that is allowed to connect to the
-   server. The user can specify one IP(v6) address, or use the 0.0.0.0
-   notation to allow connections from everywhere. Defaults to localhost
-   (127.0.0.1).
+   server. The following possibilities exist:
+
+   **localhost**
+  The server only listens on the IPv4 and IPv6 loopback interface
+  (if available). This is the default.
+
+   **127.0.0.1**
+  The server only listens on the IPv4 loopback interface.
+
+   **::1**
+  The server only listens on the IPv6 loopback interface.
+
+   **all**
+  The server listens on all available IPv4 and IPv6 interfaces.
+
+   **0.0.0.0**
+  The server listens on all available IPv4 interfaces.
+
+   **::**
+  The server listens on all available IPv6 interfaces.
+
+   *hostname*
+  The server listens on the interface designated by *hostname* which
+  is looked up using the normal hostname lookup facilities.
 
 **control**
For remote management of *monetdbd*, the **control** property
diff --git a/documentation/source/manual_pages/mserver5.rst.in 
b/documentation/source/manual_pages/mserver5.rst.in
--- a/documentation/source/manual_pages/mserver5.rst.in
+++ b/documentation/source/manual_pages/mserver5.rst.in
@@ -34,10 +34,11 @@ OPERATION
 =
 
 When the build-time configuration did not disable this, a *mserver5*
-process presents the user with server startup information and internal
-exceptions due to errors in commands sent by client

MonetDB: Jul2021 - Add some const.

2021-05-03 Thread Sjoerd Mullender
Changeset: 32bd2162d606 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/32bd2162d606
Modified Files:
monetdb5/mal/mal_prelude.c
monetdb5/mal/mel.h
Branch: Jul2021
Log Message:

Add some const.


diffs (69 lines):

diff --git a/monetdb5/mal/mal_prelude.c b/monetdb5/mal/mal_prelude.c
--- a/monetdb5/mal/mal_prelude.c
+++ b/monetdb5/mal/mal_prelude.c
@@ -164,7 +164,7 @@ addAtom( mel_atom *atoms)
 }
 
 static str
-makeArgument(MalBlkPtr mb, mel_arg *a, int *idx)
+makeArgument(MalBlkPtr mb, const mel_arg *a, int *idx)
 {
int tpe = TYPE_any;//, l;
 
@@ -245,7 +245,7 @@ addFunctions(mel_func *fcn){
}
int i;
for (i = 0; iretc; i++ ){
-   mel_arg *a = fcn->args+i;
+   const mel_arg *a = fcn->args+i;
msg = makeArgument(mb, a, &idx);
if( msg)
return msg;
@@ -266,7 +266,7 @@ addFunctions(mel_func *fcn){
}
/* add the arguments */
for (i = fcn->retc; iargc; i++ ){
-   mel_arg *a = fcn->args+i;
+   const mel_arg *a = fcn->args+i;
msg = makeArgument(mb, a, &idx);
if( msg)
return msg;
@@ -311,7 +311,7 @@ makeFuncArgument(MalBlkPtr mb, mel_func_
 }
 
 int
-melFunction(bool command, const char *mod, char *fcn, fptr imp, char *fname, 
bool unsafe, char *comment, int retc, int argc, ... )
+melFunction(bool command, const char *mod, const char *fcn, fptr imp, const 
char *fname, bool unsafe, const char *comment, int retc, int argc, ... )
 {
int i, idx;
Module c;
diff --git a/monetdb5/mal/mel.h b/monetdb5/mal/mel.h
--- a/monetdb5/mal/mel.h
+++ b/monetdb5/mal/mel.h
@@ -71,7 +71,7 @@ typedef struct __attribute__((__designat
 typedef struct __attribute__((__designated_init__)) mel_func {
char mod[14];
char fcn[30];
-   char *cname;
+   const char *cname;
uint16_t command:1,
unsafe:1,
retc:6,
@@ -80,7 +80,7 @@ typedef struct __attribute__((__designat
//char *comment;
 //#endif
fptr imp;
-   mel_arg *args;
+   const mel_arg *args;
 } mel_func;
 
 #else
@@ -137,7 +137,7 @@ typedef struct __attribute__((__designat
 } mel_func_arg;
 
 /* var arg of arguments of type mel_func_arg */
-int melFunction(bool command, const char *mod, char *fcn, fptr imp, char 
*fname, bool unsafe, char *comment, int retc, int argc, ...);
+int melFunction(bool command, const char *mod, const char *fcn, fptr imp, 
const char *fname, bool unsafe, const char *comment, int retc, int argc, ...);
 
 #ifdef SPECS
 typedef struct __attribute__((__designated_init__)) mal_spec{
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - small fix of the transaction isolation, ie ma...

2021-05-03 Thread Niels Nes
Changeset: b37bb160cc9a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b37bb160cc9a
Modified Files:
sql/storage/bat/bat_storage.c
Branch: Jul2021
Log Message:

small fix of the transaction isolation, ie make sure we still read segments 
which are deleted by some active transaction, but not commited yet.


diffs (74 lines):

diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -140,31 +140,31 @@ split_segment(segments *segs, segment *o
if (start == o->start) {
n->start = o->start;
n->end = n->start + cnt;
-   o->start = n->end;
n->next = o;
if (segs->h == o)
segs->h = n;
if (p)
p->next = n;
+   o->start = n->end;
return n;
} else if (start+cnt == o->end) {
n->start = o->end - cnt;
n->end = o->end;
-   o->end = n->start;
n->next = o->next;
o->next = n;
if (segs->t == o)
segs->t = n;
+   o->end = n->start;
return n;
}
/* 3 way split */
n->start = start;
n->end = o->end;
-   o->end = n->start;
n->next = o->next;
o->next = n;
if (segs->t == o)
segs->t = n;
+   o->end = n->start;
 
segment *oo = o;
o = n;
@@ -177,11 +177,11 @@ split_segment(segments *segs, segment *o
n->deleted = oo->deleted;
n->start = start+cnt;
n->end = o->end;
-   o->end = n->start;
n->next = o->next;
o->next = n;
if (segs->t == o)
segs->t = n;
+   o->end = n->start;
return o;
 }
 
@@ -517,7 +517,7 @@ segs_end( segments *segs, sql_trans *tr)
segment *s = segs->h, *l = NULL;
 
for(;s; s = s->next) {
-   if (VALID_4_READ(s->ts, tr))
+   if (VALID_4_READ(s->ts, tr) || (s->deleted && s->oldts && s->ts 
> TRANSACTION_ID_BASE && s->oldts < tr->ts))
l = s;
}
if (!l)
@@ -2301,8 +2301,12 @@ clear_del(sql_trans *tr, sql_table *t)
if ((bat = bind_del_data(tr, t)) == NULL)
return BUN_NONE;
if (!isTempTable(t)) {
-   if (delete_range(tr, bat, 0, bat->segs->t->end) == LOG_ERR)
+   lock_table(tr->store, t->base.id);
+   if (delete_range(tr, bat, 0, bat->segs->t->end) == LOG_ERR) {
+   unlock_table(tr->store, t->base.id);
return LOG_ERR;
+   }
+   unlock_table(tr->store, t->base.id);
}
if ((!inTransaction(tr, t) && !in_transaction && isGlobal(t)) || 
(!isNew(t) && isLocalTemp(t)))
trans_add(tr, &t->base, bat, &tc_gc_del, &commit_update_del, 
isLocalTemp(t)?NULL:&log_update_del);
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Oct2020 - Updated from current manual page sources.

2021-05-03 Thread Sjoerd Mullender
Changeset: 48b7620e43d6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/48b7620e43d6
Modified Files:
documentation/source/manual_pages/monetdb.rst
documentation/source/manual_pages/monetdbd.rst.in
documentation/source/manual_pages/mserver5.rst.in
Branch: Oct2020
Log Message:

Updated from current manual page sources.


diffs (135 lines):

diff --git a/documentation/source/manual_pages/monetdb.rst 
b/documentation/source/manual_pages/monetdb.rst
--- a/documentation/source/manual_pages/monetdb.rst
+++ b/documentation/source/manual_pages/monetdb.rst
@@ -1,3 +1,7 @@
+===
+MONETDB
+===
+
 NAME
 
 
diff --git a/documentation/source/manual_pages/monetdbd.rst.in 
b/documentation/source/manual_pages/monetdbd.rst.in
--- a/documentation/source/manual_pages/monetdbd.rst.in
+++ b/documentation/source/manual_pages/monetdbd.rst.in
@@ -20,17 +20,17 @@ DESCRIPTION
 meant to be used as daemon, but it also allows to setup and change the
 configuration of a dbfarm. The use of *monetdbd* is either as
 user-oriented way to configure, start and stop a database farm, or to be
-started from a startup script, such as from */etc/init.d/* on Linux
-systems or *smf*\ (5) on Solaris systems, as part of a system startup.
+started from a startup script, such as from *systemd*\ (1) on Linux
+systems, as part of a system startup.
 
 *Monetdbd* is the system formerly known as *merovingian*. It was renamed
 to *monetdbd* since the name *merovingian* proved to be confusing to
 most regular end-users. Internally, *monetdbd* uses the name
 *merovingian* at many places for historical reasons.
 
-A *monetdbd* instance manages one local cluster based, which is a
-directory in the system, referred to as the *dbfarm*. Nowadays, the
-dbfarm location always has to be given as argument to *monetdbd*.
+A *monetdbd* instance manages one local cluster of databases, which is a
+directory in the system, referred to as the *dbfarm*. The dbfarm
+location must always be given as argument to *monetdbd*.
 
 Within its local cluster *monetdbd* takes care of starting up databases
 when necessary, and stopping them either upon request via *monetdb*\ (1)
@@ -57,7 +57,7 @@ The commands for *monetdbd* are **create
 initializing a dbfarm, starting and stopping the MonetDB Database
 Server, and retrieving or setting options.
 
-**create dbfarm**
+**create** *dbfarm*
Initializes a new database farm, such that a MonetDB Database Server
can be started on that location. All necessary directories are
attempted to be created, and an initial properties file is created in
@@ -72,7 +72,13 @@ Server, and retrieving or setting option
 
 **stop** *dbfarm*
Sends a stop signal to the *monetdbd* process responsible for the
-   given dbfarm.
+   given dbfarm. If the **exittimeout** value is non-zero (see below),
+   all mserver processes will be sent a termination signal. The current
+   process will wait for the manager process to terminate, but sends a
+   SIGKILL signal if waiting takes longer than 5 seconds more than the
+   value of exittimeout. If exittimeout is negative, both monetdbd
+   processes involved will wait until the servers have all terminated
+   and no extra signals are sent.
 
 **get** <**all** \| *property*\ [,\ *property*\ [,..]]> *dbfarm*
Prints the requested properties, or all known properties, for the
@@ -118,15 +124,32 @@ using the **set** command. The following
This property specifies which TCP port *monetdbd* should listen to
for connection requests. Defaults to 5.
 
-**ipv6**
-   This property forces *monetdbd* to bind connections on IPv6 addresses
-   only. Defaults to false.
-
 **listenaddr**
This property specifies an address that is allowed to connect to the
-   server. The user can specify one IP(v6) address, or use the 0.0.0.0
-   notation to allow connections from everywhere. Defaults to localhost
-   (127.0.0.1).
+   server. The following possibilities exist:
+
+   **localhost**
+  The server only listens on the IPv4 and IPv6 loopback interface
+  (if available). This is the default.
+
+   **127.0.0.1**
+  The server only listens on the IPv4 loopback interface.
+
+   **::1**
+  The server only listens on the IPv6 loopback interface.
+
+   **all**
+  The server listens on all available IPv4 and IPv6 interfaces.
+
+   **0.0.0.0**
+  The server listens on all available IPv4 interfaces.
+
+   **::**
+  The server listens on all available IPv6 interfaces.
+
+   *hostname*
+  The server listens on the interface designated by *hostname* which
+  is looked up using the normal hostname lookup facilities.
 
 **control**
For remote management of *monetdbd*, the **control** property
diff --git a/documentation/source/manual_pages/mserver5.rst.in 
b/documentation/source/manual_pages/mserver5.rst.in
--- a/documentation/source/manual_pages/mserver5.rst.in
+++ b/documentation/source/manual_pages/mserver5.rst.in
@@ -34,10 +34,11 @@ OPERATION
 =

MonetDB: Jul2021 - Remove reference to non-existent files.

2021-05-03 Thread Sjoerd Mullender
Changeset: c10782f345b9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c10782f345b9
Modified Files:
documentation/source/intro.rst
Branch: Jul2021
Log Message:

Remove reference to non-existent files.


diffs (17 lines):

diff --git a/documentation/source/intro.rst b/documentation/source/intro.rst
--- a/documentation/source/intro.rst
+++ b/documentation/source/intro.rst
@@ -23,13 +23,6 @@ server`__. There is also a `github mirro
 .. _github: https://github.com/MonetDB/MonetDB
 __ github_
 
-If you got a source distribution, please compile and install MonetDB first,
-following the instructions in the file `HowToStart.rst`__ (for Unix)
-or `buildtools/doc/windowsbuild.rst`__ (for Windows).
-
-__ HowToStart.rst
-__ buildtools/doc/windowsbuild.rst
-
 Copyright Notice
 
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jun2020 - Work around GCC 11 problems.

2021-05-03 Thread Sjoerd Mullender
Changeset: 072c56ad5118 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/072c56ad5118
Modified Files:
common/utils/mstring.h
Branch: Jun2020
Log Message:

Work around GCC 11 problems.


diffs (15 lines):

diff --git a/common/utils/mstring.h b/common/utils/mstring.h
--- a/common/utils/mstring.h
+++ b/common/utils/mstring.h
@@ -29,7 +29,10 @@ strcpy_len(char *restrict dst, const cha
if ((dst[i] = src[i]) == 0)
return i;
}
-   dst[n - 1] = 0;
+   /* for correctness, the decrement isn't needed (just assigning 0
+* to dst[n-1] would be sufficient), but to work around a too
+* strict GNU C compiler, we do need it */
+   dst[--n] = 0;
 /* in some versions of GCC (at least gcc (Ubuntu 7.5.0-3ubuntu1~18.04)
  * 7.5.0), the error just can't be turned off when using
  * --enable-strict, so we just use the (more) expensive way of getting the
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - BATproject2: does not match always Looking in...

2021-05-03 Thread Pedro Ferreira
Changeset: 18f12c910e71 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/18f12c910e71
Modified Files:
sql/test/SQLancer/Tests/sqlancer14.test
Branch: Jul2021
Log Message:

BATproject2: does not match always Looking into it


diffs (25 lines):

diff --git a/sql/test/SQLancer/Tests/sqlancer14.test 
b/sql/test/SQLancer/Tests/sqlancer14.test
--- a/sql/test/SQLancer/Tests/sqlancer14.test
+++ b/sql/test/SQLancer/Tests/sqlancer14.test
@@ -743,3 +743,21 @@ merge into t2 using (select * from t1) a
 
 statement ok
 ROLLBACK
+
+statement ok
+CREATE TABLE t0(c0 boolean, c1 int, c3 boolean)
+
+statement ok rowcount 1
+INSERT INTO t0(c1, c0) VALUES(3, false)
+
+statement ok rowcount 1
+INSERT INTO t0(c3, c1) VALUES(TRUE, 9)
+
+query T rowsort
+SELECT 'a' LIKE ifthenelse(t0.c3, (SELECT 'v' FROM t0 GROUP BY (SELECT 1 FROM 
t0 HAVING min(least(t0.c0, (SELECT FALSE GROUP BY 3)) AND t0.c3))), 's') FROM t0
+
+False
+False
+
+statement ok
+DROP TABLE t0
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jun2020 - Simplify code and make it compilable with new...

2021-05-03 Thread Sjoerd Mullender
Changeset: 2787cb87223d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2787cb87223d
Modified Files:
gdk/gdk_project.c
Branch: Jun2020
Log Message:

Simplify code and make it compilable with new gcc on f34.


diffs (16 lines):

diff --git a/gdk/gdk_project.c b/gdk/gdk_project.c
--- a/gdk/gdk_project.c
+++ b/gdk/gdk_project.c
@@ -812,11 +812,7 @@ BATprojectchain(BAT **bats)
o -= ba[i].hlo;
o = ba[i].ci.s ? canditer_idx(&ba[i].ci, o) : 
ba[i].t[o];
}
-   if (bunfastappTYPE(oid, bn, &o) != GDK_SUCCEED)
-   goto bunins_failed;
-   if (ATOMputFIX(bn->ttype, d, &o) != GDK_SUCCEED)
-   goto bunins_failed;
-   d++;
+   *d++ = o;
}
} else if (!ATOMvarsized(tpe)) {
const void *v;
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - there is a very subtile difference between ca...

2021-05-03 Thread Niels Nes
Changeset: 58a9b4f13a6e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/58a9b4f13a6e
Modified Files:
gdk/gdk_cand.c
Branch: Jul2021
Log Message:

there is a very subtile difference between cand_mask and bat with type mask.
Which basically complicates the setting of the hseqbase. This solves (hopefully 
all) issues with that.


diffs (107 lines):

diff --git a/gdk/gdk_cand.c b/gdk/gdk_cand.c
--- a/gdk/gdk_cand.c
+++ b/gdk/gdk_cand.c
@@ -449,8 +449,8 @@ canditer_init(struct canditer *ci, BAT *
if (mask_cand(s)) {
ci->tpe = cand_mask;
ci->mask = (const uint32_t *) ccand_first(s);
-   ci->seq = s->hseqbase - (oid) CCAND(s)->firstbit;
-   ci->hseq = ci->seq;
+   ci->seq = s->tseqbase - (oid) CCAND(s)->firstbit;
+   ci->hseq = s->hseqbase;
ci->nvals = ccand_free(s) / sizeof(uint32_t);
cnt = ci->nvals * 32;
} else if (s->ttype == TYPE_msk) {
@@ -607,6 +607,7 @@ canditer_init(struct canditer *ci, BAT *
}
break;
case cand_mask:
+   assert(s->tseqbase != oid_nil);
if (b != NULL) {
if (ci->seq + cnt <= b->hseqbase ||
ci->seq >= b->hseqbase + BATcount(b)) {
@@ -669,11 +670,10 @@ canditer_init(struct canditer *ci, BAT *
ci->firstbit += i;
cnt -= i;
if (mask_cand(s))
-   ci->mskoff = s->hseqbase - (oid) CCAND(s)->firstbit + 
(ci->mask - (const uint32_t *) ccand_first(s)) * 32U;
+   ci->mskoff = s->tseqbase - (oid) CCAND(s)->firstbit + 
(ci->mask - (const uint32_t *) ccand_first(s)) * 32U;
else
-   ci->mskoff = s->hseqbase + (ci->mask - (const uint32_t 
*) s->theap->base) * 32U;
+   ci->mskoff = s->tseqbase + (ci->mask - (const uint32_t 
*) s->theap->base) * 32U;
ci->seq = ci->mskoff + ci->firstbit;
-   ci->hseq = ci->seq;
ci->nextbit = ci->firstbit;
/* at this point we know that bit ci->firstbit is set
 * in ci->mask[0] */
@@ -1415,7 +1415,7 @@ BATmaskedcands(oid hseq, BUN nr, BAT *ma
if (cnt > 0) {
ATOMIC_INIT(&msks->refs, 1);
bn->tvheap = msks;
-   bn->hseqbase += (oid) c->firstbit;
+   bn->tseqbase += (oid) c->firstbit;
} else {
/* no point having a mask if it's empty */
HEAPfree(msks, true);
@@ -1428,6 +1428,7 @@ BATmaskedcands(oid hseq, BUN nr, BAT *ma
  hseq, ALGOBATPAR(masked),
  selected ? "true" : "false",
  ALGOBATPAR(bn));
+   assert(bn->tseqbase != oid_nil);
return bn;
 }
 
@@ -1442,14 +1443,15 @@ BATunmask(BAT *b)
const uint32_t *src;
oid *dst;
BUN n = 0;
-   oid hseq = b->hseqbase;
+   oid tseq = b->hseqbase;
bool negcand = false;
 
if (mask_cand(b)) {
cnt = ccand_free(b) / sizeof(uint32_t);
rem = 0;
src = (const uint32_t *) ccand_first(b);
-   hseq -= (oid) CCAND(b)->firstbit;
+   tseq = b->tseqbase;
+   tseq -= (oid) CCAND(b)->firstbit;
/* create negative candidate list if more than half the
 * bits are set */
negcand = BATcount(b) > cnt * 16;
@@ -1491,7 +1493,7 @@ BATunmask(BAT *b)
if ((val & (1U << i)) == 0) {
if (v + i >= b->batCount + n)
break;
-   dst[n++] = hseq + v + i;
+   dst[n++] = tseq + v + i;
}
}
}
@@ -1505,7 +1507,7 @@ BATunmask(BAT *b)
bn->tvheap->free = sizeof(ccand_t) + n * sizeof(oid);
}
BATsetcount(bn, n=BATcount(b));
-   bn->tseqbase = hseq;
+   bn->tseqbase = tseq;
} else {
bn = COLnew(b->hseqbase, TYPE_oid, mask_cand(b) ? BATcount(b) : 
1024, TRANSIENT);
if (bn == NULL)
@@ -1524,7 +1526,7 @@ BATunmask(BAT *b)
}
dst = (oid *) Tloc(bn, 0);
}
-   dst[n++] = hseq + p * 32 + i;
+   dst[n++] = tseq + p * 32 + i;
}
}
}
@@ -1540,7 +1542,7 @@ BATunmask(BAT *b)
}
dst = (oid *) Tloc(bn, 0);
}
-   

MonetDB: Jul2021 - Added test for newly found issue

2021-05-03 Thread Pedro Ferreira
Changeset: 4882a4dcd3e7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4882a4dcd3e7
Added Files:
sql/test/miscellaneous/Tests/transaction_isolation.SQL.py
Modified Files:
sql/test/miscellaneous/Tests/All
Branch: Jul2021
Log Message:

Added test for newly found issue


diffs (66 lines):

diff --git a/sql/test/miscellaneous/Tests/All b/sql/test/miscellaneous/Tests/All
--- a/sql/test/miscellaneous/Tests/All
+++ b/sql/test/miscellaneous/Tests/All
@@ -19,3 +19,4 @@ create_func_temp
 simple_plans
 vessels
 prepare
+transaction_isolation
diff --git a/sql/test/miscellaneous/Tests/transaction_isolation.SQL.py 
b/sql/test/miscellaneous/Tests/transaction_isolation.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/miscellaneous/Tests/transaction_isolation.SQL.py
@@ -0,0 +1,53 @@
+from MonetDBtesting.sqltest import SQLTestCase
+
+with SQLTestCase() as mdb1:
+with SQLTestCase() as mdb2:
+mdb1.connect(username="monetdb", password="monetdb")
+mdb2.connect(username="monetdb", password="monetdb")
+mdb1.execute("CREATE TABLE integers (i int);").assertSucceeded()
+mdb1.execute("insert into integers values 
(1),(2),(3),(NULL);").assertSucceeded()
+
+mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+
+mdb1.execute('start transaction;').assertSucceeded()
+mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb1.execute('TRUNCATE integers;').assertRowCount(4)
+mdb1.execute('SELECT i FROM integers;').assertDataResultMatch([])
+mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb1.execute("insert into integers values 
(4),(5),(6);").assertRowCount(3)
+mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(5,),(6,)])
+mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb1.execute("update integers set i = 7 where i = 
6;").assertRowCount(1)
+mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(5,),(7,)])
+mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb1.execute("delete from integers where i = 5;").assertRowCount(1)
+mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(7,)])
+mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb1.execute('rollback;').assertSucceeded()
+
+mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+
+mdb1.execute('start transaction;').assertSucceeded()
+mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb1.execute('TRUNCATE integers;').assertRowCount(4)
+mdb1.execute('SELECT i FROM integers;').assertDataResultMatch([])
+mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb1.execute("insert into integers values 
(4),(5),(6);").assertRowCount(3)
+mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(5,),(6,)])
+mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb1.execute("update integers set i = 7 where i = 
6;").assertRowCount(1)
+mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(5,),(7,)])
+mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb1.execute("delete from integers where i = 5;").assertRowCount(1)
+mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(7,)])
+mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(1,),(2,),(3,),(None,)])
+mdb1.execute('commit;').assertSucceeded()
+
+mdb1.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(7,)])
+mdb2.execute('SELECT i FROM 
integers;').assertDataResultMatch([(4,),(7,)])
+
+mdb1.execute("drop table integers;")
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - sqltest fix

2021-05-03 Thread svetlin
Changeset: f573ffc4f202 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f573ffc4f202
Modified Files:
testing/sqltest.py
Branch: Jul2021
Log Message:

sqltest fix


diffs (13 lines):

diff --git a/testing/sqltest.py b/testing/sqltest.py
--- a/testing/sqltest.py
+++ b/testing/sqltest.py
@@ -299,6 +299,9 @@ class TestCaseResult(object):
 if len(data) == 0 and len(self.data) > 0:
 msg = 'expected empty result!'
 self.fail(msg, data=self.data)
+if len(data) > 0 and len(self.data) == 0:
+msg = 'expected result but received empty!'
+self.fail(msg, data=self.data)
 
 data = list(map(mapfn, data))
 if index is None:
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - fix sqltest empty result bug

2021-05-03 Thread svetlin
Changeset: b8763536a8fc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b8763536a8fc
Modified Files:
testing/sqltest.py
Branch: Jul2021
Log Message:

fix sqltest empty result bug


diffs (14 lines):

diff --git a/testing/sqltest.py b/testing/sqltest.py
--- a/testing/sqltest.py
+++ b/testing/sqltest.py
@@ -296,6 +296,10 @@ class TestCaseResult(object):
 if type(next) is list:
 return tuple(next)
 return next
+if len(data) == 0 and len(self.data) > 0:
+msg = 'expected empty result!'
+self.fail(msg, data=self.data)
+
 data = list(map(mapfn, data))
 if index is None:
 if len(data) > 0:
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - I forgot to disable set queries too

2021-05-03 Thread Pedro Ferreira
Changeset: cf3de9a57ed8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/cf3de9a57ed8
Modified Files:
sql/server/rel_select.c
sql/test/SQLancer/Tests/sqlancer14.test
Branch: Jul2021
Log Message:

I forgot to disable set queries too


diffs (35 lines):

diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -2714,6 +2714,9 @@ rel_logical_exp(sql_query *query, sql_re
case SQL_EXCEPT:
case SQL_INTERSECT: {
sql_rel *sq;
+
+   if (is_psm_call(f) || is_sql_merge(f))
+   return sql_error(sql, 02, SQLSTATE(42000) "%s: set 
operations not supported inside %s", is_psm_call(f) ? "CALL" : "MERGE", 
is_psm_call(f) ? "CALL statements" : "MERGE conditions");
if (rel)
query_push_outer(query, rel, f);
sq = rel_setquery(query, sc);
diff --git a/sql/test/SQLancer/Tests/sqlancer14.test 
b/sql/test/SQLancer/Tests/sqlancer14.test
--- a/sql/test/SQLancer/Tests/sqlancer14.test
+++ b/sql/test/SQLancer/Tests/sqlancer14.test
@@ -728,3 +728,18 @@ merge into t2 using (select * from t1) a
 
 statement ok
 ROLLBACK
+
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE "t1" ("c0" VARCHAR(64) NOT NULL,"c1" INT NOT NULL,"c3" REAL NOT 
NULL,"c5" REAL)
+
+statement ok
+CREATE TABLE "t2" ("c1" INTERVAL MONTH NOT NULL,"c3" VARCHAR(55) NOT NULL,"c4" 
DOUBLE NOT NULL, CONSTRAINT "t2_c1_pkey" PRIMARY KEY ("c1"))
+
+statement error MERGE: set operations not supported inside MERGE conditions
+merge into t2 using (select * from t1) as t1 on ((select 1) except (select 2)) 
when matched then delete
+
+statement ok
+ROLLBACK
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - I forgot to disable the exists operator (uses...

2021-05-03 Thread Pedro Ferreira
Changeset: 78d9623081b9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/78d9623081b9
Modified Files:
sql/server/rel_select.c
sql/test/SQLancer/Tests/sqlancer14.test
Branch: Jul2021
Log Message:

I forgot to disable the exists operator (uses subquery) on merge statements and 
procedure calls


diffs (34 lines):

diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -1896,6 +1896,8 @@ rel_exists_exp(sql_query *query, sql_rel
mvc *sql = query->sql;
sql_rel *sq = NULL;
 
+   if (is_psm_call(f) || is_sql_merge(f))
+   return sql_error(sql, 02, SQLSTATE(42000) "%s: subqueries not 
supported inside %s", is_psm_call(f) ? "CALL" : "MERGE", is_psm_call(f) ? "CALL 
statements" : "MERGE conditions");
if (rel)
query_push_outer(query, rel, f);
sq = rel_subquery(query, NULL, sc->data.sym, ek);
diff --git a/sql/test/SQLancer/Tests/sqlancer14.test 
b/sql/test/SQLancer/Tests/sqlancer14.test
--- a/sql/test/SQLancer/Tests/sqlancer14.test
+++ b/sql/test/SQLancer/Tests/sqlancer14.test
@@ -713,3 +713,18 @@ True
 
 statement ok
 ROLLBACK
+
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE "t1" ("c0" VARCHAR(64) NOT NULL,"c1" INT NOT NULL,"c3" REAL NOT 
NULL,"c5" REAL)
+
+statement ok
+CREATE TABLE "t2" ("c1" INTERVAL MONTH NOT NULL,"c3" VARCHAR(55) NOT NULL,"c4" 
DOUBLE NOT NULL, CONSTRAINT "t2_c1_pkey" PRIMARY KEY ("c1"))
+
+statement error MERGE: subqueries not supported inside MERGE conditions
+merge into t2 using (select * from t1) as t1 on exists (select 1) when matched 
then delete
+
+statement ok
+ROLLBACK
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: pushcands - aggr.{min,max} now have optional candidate ...

2021-05-03 Thread Sjoerd Mullender
Changeset: c0b37d366ae4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c0b37d366ae4
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
gdk/gdk_aggr.c
gdk/gdk_calc.h
monetdb5/modules/kernel/algebra.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_statistics.c
sql/backends/monet5/sql_subquery.c
Branch: pushcands
Log Message:

aggr.{min,max} now have optional candidate lists.


diffs (truncated from 394 to 300 lines):

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
@@ -142,11 +142,15 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",  "jsonaggr", "command aggr.jsonaggr(X_0:bat[:dbl]):str ",
"JSONgroupStr;",""  ]
 [ "aggr",  "jsonaggr", "command aggr.jsonaggr(X_0:bat[:str]):str ",
"JSONgroupStr;",""  ]
 [ "aggr",  "max",  "command aggr.max(X_0:bat[:any_1], X_1:bat[:oid], 
X_2:bat[:any_2]):bat[:any_1] ",   "AGGRmax3;",""  ]
+[ "aggr",  "max",  "command aggr.max(X_0:bat[:any_2], X_1:bat[:oid]):any_2 
",  "ALGmaxany2;",  ""  ]
+[ "aggr",  "max",  "command aggr.max(X_0:bat[:any_2], X_1:bit, 
X_2:bat[:oid]):any_2 ", "ALGmaxany2_skipnil;",  ""  ]
 [ "aggr",  "max",  "command aggr.max(X_0:bat[:any_2]):any_2 ", 
"ALGmaxany;",   ""  ]
 [ "aggr",  "max",  "command aggr.max(X_0:bat[:any_2], X_1:bit):any_2 ",
"ALGmaxany_skipnil;",   ""  ]
 [ "aggr",  "median",   "command aggr.median(X_0:bat[:any_1]):any_1 ",  
"AGGRmedian;",  ""  ]
 [ "aggr",  "median_avg",   "command aggr.median_avg(X_0:bat[:any_1]):dbl 
","AGGRmedian_avg;",  ""  ]
 [ "aggr",  "min",  "command aggr.min(X_0:bat[:any_1], X_1:bat[:oid], 
X_2:bat[:any_2]):bat[:any_1] ",   "AGGRmin3;",""  ]
+[ "aggr",  "min",  "command aggr.min(X_0:bat[:any_2], X_1:bat[:oid]):any_2 
",  "ALGminany2;",  ""  ]
+[ "aggr",  "min",  "command aggr.min(X_0:bat[:any_2], X_1:bit, 
X_2:bat[:oid]):any_2 ", "ALGminany2_skipnil;",  ""  ]
 [ "aggr",  "min",  "command aggr.min(X_0:bat[:any_2]):any_2 ", 
"ALGminany;",   ""  ]
 [ "aggr",  "min",  "command aggr.min(X_0:bat[:any_2], X_1:bit):any_2 ",
"ALGminany_skipnil;",   ""  ]
 [ "aggr",  "not_anyequal", "pattern aggr.not_anyequal(X_0:any_1, 
X_1:any_1):bit ", "CMDvarNE;",""  ]
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
@@ -153,11 +153,15 @@ stdout of test 'MAL-signatures` in direc
 [ "aggr",  "jsonaggr", "command aggr.jsonaggr(X_0:bat[:dbl]):str ",
"JSONgroupStr;",""  ]
 [ "aggr",  "jsonaggr", "command aggr.jsonaggr(X_0:bat[:str]):str ",
"JSONgroupStr;",""  ]
 [ "aggr",  "max",  "command aggr.max(X_0:bat[:any_1], X_1:bat[:oid], 
X_2:bat[:any_2]):bat[:any_1] ",   "AGGRmax3;",""  ]
+[ "aggr",  "max",  "command aggr.max(X_0:bat[:any_2], X_1:bat[:oid]):any_2 
",  "ALGmaxany2;",  ""  ]
+[ "aggr",  "max",  "command aggr.max(X_0:bat[:any_2], X_1:bit, 
X_2:bat[:oid]):any_2 ", "ALGmaxany2_skipnil;",  ""  ]
 [ "aggr",  "max",  "command aggr.max(X_0:bat[:any_2]):any_2 ", 
"ALGmaxany;",   ""  ]
 [ "aggr",  "max",  "command aggr.max(X_0:bat[:any_2], X_1:bit):any_2 ",
"ALGmaxany_skipnil;",   ""  ]
 [ "aggr",  "median",   "command aggr.median(X_0:bat[:any_1]):any_1 ",  
"AGGRmedian;",  ""  ]
 [ "aggr",  "median_avg",   "command aggr.median_avg(X_0:bat[:any_1]):dbl 
","AGGRmedian_avg;",  ""  ]
 [ "aggr",  "min",  "command aggr.min(X_0:bat[:any_1], X_1:bat[:oid], 
X_2:bat[:any_2]):bat[:any_1] ",   "AGGRmin3;",""  ]
+[ "aggr",  "min",  "command aggr.min(X_0:bat[:any_2], X_1:bat[:oid]):any_2 
",  "ALGminany2;",  ""  ]
+[ "aggr",  "min",  "command aggr.min(X_0:bat[:any_2], X_1:bit, 
X_2:bat[:oid]):any_2 ", "ALGminany2_skipnil;",  ""  ]
 [ "aggr",  "min",  "command aggr.min(X_0:bat[:any_2]):any_2 ", 
"ALGminany;",   ""  ]
 [ "aggr",  "min",  "command aggr.min(X_0:bat[:any_2], X_1:bit):any_2 ",
"ALGminany_skipnil;",   ""  ]
 [ "aggr",  "not_anyequal", "pattern aggr.not_anyequal(X_0:any_1, 
X_1:any_1):bit ", "CMDvarNE;",""  ]
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
@@ -159,12 +159,12 @@ gdk_return BATkey(BAT *b, bool onoff);
 bool BATkeyed(BAT *b);
 gdk_return BATleftjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, 
bool nil_

MonetDB: default - sqltest fix

2021-05-03 Thread svetlin
Changeset: d168c777105d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d168c777105d
Modified Files:
testing/sqltest.py
Branch: default
Log Message:

sqltest fix


diffs (13 lines):

diff --git a/testing/sqltest.py b/testing/sqltest.py
--- a/testing/sqltest.py
+++ b/testing/sqltest.py
@@ -299,6 +299,9 @@ class TestCaseResult(object):
 if len(data) == 0 and len(self.data) > 0:
 msg = 'expected empty result!'
 self.fail(msg, data=self.data)
+if len(data) > 0 and len(self.data) == 0:
+msg = 'expected result but received empty!'
+self.fail(msg, data=self.data)
 
 data = list(map(mapfn, data))
 if index is None:
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - fix sqltest empty result bug

2021-05-03 Thread svetlin
Changeset: 9d4586998da0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/9d4586998da0
Modified Files:
testing/sqltest.py
Branch: default
Log Message:

fix sqltest empty result bug


diffs (14 lines):

diff --git a/testing/sqltest.py b/testing/sqltest.py
--- a/testing/sqltest.py
+++ b/testing/sqltest.py
@@ -296,6 +296,10 @@ class TestCaseResult(object):
 if type(next) is list:
 return tuple(next)
 return next
+if len(data) == 0 and len(self.data) > 0:
+msg = 'expected empty result!'
+self.fail(msg, data=self.data)
+
 data = list(map(mapfn, data))
 if index is None:
 if len(data) > 0:
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - Merge with Oct2020 branch.

2021-05-03 Thread Sjoerd Mullender
Changeset: 55eca80bf98b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/55eca80bf98b
Branch: Jul2021
Log Message:

Merge with Oct2020 branch.


diffs (16 lines):

diff --git a/tools/merovingian/ChangeLog.Oct2020 
b/tools/merovingian/ChangeLog.Oct2020
--- a/tools/merovingian/ChangeLog.Oct2020
+++ b/tools/merovingian/ChangeLog.Oct2020
@@ -1,3 +1,12 @@
 # ChangeLog file for sql/src/backends/monet5/merovingian
 # This file is updated with mchangelog
 
+* Mon May  3 2021 Sjoerd Mullender 
+- When stopping monetdbd using the `monetdbd stop' command, this command
+  now waits for 5 seconds longer than the exittimeout value before it
+  kills the monetdbd daemon instead of only 30 seconds total (or until
+  that daemon stops earlier).  This gives the daemon enough time to
+  terminate the mserver5 processes that it is managing.  If exittimeout
+  is negative, the daemon and the monetdbd process initiating the stop
+  wait indefinitely until the mserver5 processes have stopped.
+
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Oct2020 - Blurb.

2021-05-03 Thread Sjoerd Mullender
Changeset: 567e0730d103 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/567e0730d103
Modified Files:
tools/merovingian/ChangeLog.Oct2020
Branch: Oct2020
Log Message:

Blurb.


diffs (16 lines):

diff --git a/tools/merovingian/ChangeLog.Oct2020 
b/tools/merovingian/ChangeLog.Oct2020
--- a/tools/merovingian/ChangeLog.Oct2020
+++ b/tools/merovingian/ChangeLog.Oct2020
@@ -1,3 +1,12 @@
 # ChangeLog file for sql/src/backends/monet5/merovingian
 # This file is updated with mchangelog
 
+* Mon May  3 2021 Sjoerd Mullender 
+- When stopping monetdbd using the `monetdbd stop' command, this command
+  now waits for 5 seconds longer than the exittimeout value before it
+  kills the monetdbd daemon instead of only 30 seconds total (or until
+  that daemon stops earlier).  This gives the daemon enough time to
+  terminate the mserver5 processes that it is managing.  If exittimeout
+  is negative, the daemon and the monetdbd process initiating the stop
+  wait indefinitely until the mserver5 processes have stopped.
+
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - Merge with Oct2020 branch.

2021-05-03 Thread Sjoerd Mullender
Changeset: 45c1a78db648 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/45c1a78db648
Modified Files:
common/utils/mstring.h
Branch: Jul2021
Log Message:

Merge with Oct2020 branch.


diffs (45 lines):

diff --git a/common/utils/mstring.h b/common/utils/mstring.h
--- a/common/utils/mstring.h
+++ b/common/utils/mstring.h
@@ -35,7 +35,6 @@ strcpy_len(char *restrict dst, const cha
  * --enable-strict, so we just use the (more) expensive way of getting the
  * right answer (rescan the whole string) */
 #if !defined(__GNUC__) || __GNUC__ > 7 || (__GNUC__ == 7 && __GNUC_MINOR__ > 5)
-#if __GNUC__ < 11
 /* This code is correct, but GCC gives a warning in certain
  * conditions, so we disable the warning temporarily.
  * The warning happens e.g. in
@@ -51,7 +50,6 @@ GCC_Pragma("GCC diagnostic ignored \"-Wa
return n + strlen(src + n);
 GCC_Pragma("GCC diagnostic pop")
 #endif
-#endif
}
return strlen(src);
 }
diff --git a/gdk/ChangeLog.Oct2020 b/gdk/ChangeLog.Oct2020
--- a/gdk/ChangeLog.Oct2020
+++ b/gdk/ChangeLog.Oct2020
@@ -1,3 +1,10 @@
 # ChangeLog file for GDK
 # This file is updated with Maddlog
 
+* Mon May  3 2021 Sjoerd Mullender 
+- A bug that would very occasionally produce an error "strPut: incorrectly
+  encoded UTF-8", even when no incorrectly coded characters are used
+  at all, has been fixed.  It was the result of a rare combination of
+  strings having been added to the column that caused essentially an
+  off-by-one type of error to occur.
+
diff --git a/sql/ChangeLog.Oct2020 b/sql/ChangeLog.Oct2020
--- a/sql/ChangeLog.Oct2020
+++ b/sql/ChangeLog.Oct2020
@@ -1,3 +1,8 @@
 # ChangeLog file for sql
 # This file is updated with Maddlog
 
+* Mon May  3 2021 Sjoerd Mullender 
+- A bug where a sequence of TRUNCATE TABLE and COPY INTO the just
+  truncated table would result in success being reported to both queries,
+  but the table still being empty afterwards, has been fixed.
+
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Oct2020 - Backed out changeset 78874f24d49c: with updat...

2021-05-03 Thread Sjoerd Mullender
Changeset: e37d105cf860 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e37d105cf860
Modified Files:
common/utils/mstring.h
Branch: Oct2020
Log Message:

Backed out changeset 78874f24d49c: with updated gcc it works fine again.


diffs (19 lines):

diff --git a/common/utils/mstring.h b/common/utils/mstring.h
--- a/common/utils/mstring.h
+++ b/common/utils/mstring.h
@@ -35,7 +35,6 @@ strcpy_len(char *restrict dst, const cha
  * --enable-strict, so we just use the (more) expensive way of getting the
  * right answer (rescan the whole string) */
 #if !defined(__GNUC__) || __GNUC__ > 7 || (__GNUC__ == 7 && __GNUC_MINOR__ > 5)
-#if __GNUC__ < 11
 /* This code is correct, but GCC gives a warning in certain
  * conditions, so we disable the warning temporarily.
  * The warning happens e.g. in
@@ -51,7 +50,6 @@ GCC_Pragma("GCC diagnostic ignored \"-Wa
return n + strlen(src + n);
 GCC_Pragma("GCC diagnostic pop")
 #endif
-#endif
}
return strlen(src);
 }
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Oct2020 - Added some info about fixed bugs.

2021-05-03 Thread Sjoerd Mullender
Changeset: d708929e48ca for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d708929e48ca
Modified Files:
gdk/ChangeLog.Oct2020
sql/ChangeLog.Oct2020
Branch: Oct2020
Log Message:

Added some info about fixed bugs.


diffs (26 lines):

diff --git a/gdk/ChangeLog.Oct2020 b/gdk/ChangeLog.Oct2020
--- a/gdk/ChangeLog.Oct2020
+++ b/gdk/ChangeLog.Oct2020
@@ -1,3 +1,10 @@
 # ChangeLog file for GDK
 # This file is updated with Maddlog
 
+* Mon May  3 2021 Sjoerd Mullender 
+- A bug that would very occasionally produce an error "strPut: incorrectly
+  encoded UTF-8", even when no incorrectly coded characters are used
+  at all, has been fixed.  It was the result of a rare combination of
+  strings having been added to the column that caused essentially an
+  off-by-one type of error to occur.
+
diff --git a/sql/ChangeLog.Oct2020 b/sql/ChangeLog.Oct2020
--- a/sql/ChangeLog.Oct2020
+++ b/sql/ChangeLog.Oct2020
@@ -1,3 +1,8 @@
 # ChangeLog file for sql
 # This file is updated with Maddlog
 
+* Mon May  3 2021 Sjoerd Mullender 
+- A bug where a sequence of TRUNCATE TABLE and COPY INTO the just
+  truncated table would result in success being reported to both queries,
+  but the table still being empty afterwards, has been fixed.
+
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jul2021 - Hide OS and maximum size related errors

2021-05-03 Thread Pedro Ferreira
Changeset: db8a8a57156b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/db8a8a57156b
Modified Files:
sql/test/SQLancer/Tests/sqlancer07.test
sql/test/SQLancer/Tests/sqlancer13.test
Branch: Jul2021
Log Message:

Hide OS and maximum size related errors


diffs (28 lines):

diff --git a/sql/test/SQLancer/Tests/sqlancer07.test 
b/sql/test/SQLancer/Tests/sqlancer07.test
--- a/sql/test/SQLancer/Tests/sqlancer07.test
+++ b/sql/test/SQLancer/Tests/sqlancer07.test
@@ -221,10 +221,10 @@ DROP TABLE t2
 statement ok
 CREATE TABLE t1 (c0 DOUBLE PRECISION NOT NULL)
 
-statement error 42000!Scale (48) overflows type
+statement error
 INSERT INTO t1(c0) 
VALUES((0.6548429615298178*0.3050008736497528)/(0.5061323979270875))
 
-statement error 42000!Scale (49) overflows type
+statement error
 INSERT INTO t1(c0) VALUES(COALESCE(0.6548429615298178, 
0.20317629894456002))*(COALESCE(0.3050008736497528, 
0.2277902039419617/(0.5061323979270875)))
 
 query R rowsort
diff --git a/sql/test/SQLancer/Tests/sqlancer13.test 
b/sql/test/SQLancer/Tests/sqlancer13.test
--- a/sql/test/SQLancer/Tests/sqlancer13.test
+++ b/sql/test/SQLancer/Tests/sqlancer13.test
@@ -335,7 +335,7 @@ START TRANSACTION
 statement ok
 CREATE TABLE "sys"."t0" ("c4" DOUBLE NOT NULL)
 
-statement error Math exception: Numerical result out of range
+statement error
 insert into t0(c4) values(power(1770290607, case when greatest(false, true) 
then cast(5 as real) end)), (-1.722544153E9)
 
 statement error 25005!Current transaction is aborted (please ROLLBACK)
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list