MonetDB: Oct2020 - Remove accidentally added changelog message.
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...
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.
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...
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.
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.
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...
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...
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.
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...
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.
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.
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...
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.
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.
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 ...
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
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
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.
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.
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...
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.
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.
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.
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...
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...
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...
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
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
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
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
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...
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 ...
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
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
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.
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.
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.
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...
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.
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
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