Changeset: 59d427f51d61 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/59d427f51d61 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: default Log Message:
Merge with Sep2022 branch. diffs (truncated from 3933 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -771,3 +771,5 @@ 59de1ee118d4eccc072c0cf3938f90635a7db311 59de1ee118d4eccc072c0cf3938f90635a7db311 Jan2022_SP3_release 38ba6e40ba9148c762fe4a4b40f4937f86e516b6 Jul2021_25 470e524a786ee0e94c7901ec98d95ac351a0e472 Sep2022_root +9785fa2a471fe32495e07479edf110335ddaa750 Jan2022_17 +26ffeb5af5240c807a6583fd6eb4ee2c9cd210d2 Jan2022_19 diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -81,7 +81,7 @@ Group: Applications/Databases License: MPLv2.0 URL: https://www.monetdb.org/ BugURL: https://bugs.monetdb.org/ -Source: https://www.monetdb.org/downloads/sources/Jan2022-SP3/%{name}-%{version}.tar.bz2 +Source: https://www.monetdb.org/downloads/sources/Jan2022-SP4/%{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 @@ -849,6 +849,79 @@ fi %endif %changelog +* Mon Aug 15 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.19-20220815 +- Rebuilt. + +* Thu Aug 11 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.17-20220811 +- Rebuilt. +- GH#7040: Memory leak detected for MAPI interface +- GH#7298: Irresponsive database server after reading incomplete SQL + script. +- GH#7308: Race condition in MVCC transaction management + +* Wed Aug 10 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.17-20220811 +- gdk: A bug was fixed when upgrading a database from the Oct2020 releases + (11.39.X) or older when the write-ahead log (WAL) was not empty and + contained instructions to create new tables. + +* Tue Aug 2 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.17-20220811 +- gdk: When destroying a bat, make sure there are no files left over in + the BACKUP directory since they can cause problems when the bat id + gets reused. + +* Thu Jul 28 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.17-20220811 +- gdk: Fixed an off-by-one error in the logger which caused older log files + to stick around longer in the write-ahead log than necessary. +- gdk: When an empty BAT is committed, skip writing (and synchronizing to + disk) the heap (tail and theap) files and write 0 for their sizes to + the BBP.dir file. When reading the BBP.dir file, if an empty BAT is + encountered, set the sizes of those files to 0. This fixes potential + issues during startup of the server (BBPcheckbats reporting errors). + +* Thu Jun 23 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.17-20220811 +- merovingian: When multiple identical messages are written to the log, write the + first one, and combine subsequent ones in a single message. + +* Wed Jun 22 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.17-20220811 +- gdk: Make sure heap files of transient bats get deleted when the bat is + destroyed. If the bat was a partial view (sharing the vheap but not + the tail), the tail file wasn't deleted. +- gdk: Various changes were made to satisfy newer compilers. +- gdk: The batDirtydesc and batDirtyflushed Boolean values have been deprecated + and are no longer used. They were both holdovers from long ago. +- gdk: Various race conditions (data races) have been fixed. + +* Wed Jun 22 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.17-20220811 +- merovingian: Fixed a leak where the log file wasn't closed when it was reopened + after a log rotation (SIGHUP signal). +- merovingian: Try to deal more gracefully with "inherited" mserver5 processes. + This includes not complaining about an "impossible state", and allowing + such processes to be stopped by the monetdbd process. +- merovingian: When a transient failure occurs during processing of a new connection to + the monetdbd server, sleep for half a second so that if the transient + failure occurs again, the log file doesn't get swamped with error + messages. + +* Wed Jun 22 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.17-20220811 +- monetdb5: Various race conditions (data races) have been fixed. + +* Fri Jun 10 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.17-20220811 +- clients: Implemented dump of global grants, that is to say, grants for COPY INTO + and COPY FROM which grant permission to users to write to or read from + files on the server (COPY INTO queries without the ON CLIENT option). + +* Tue May 31 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.17-20220811 +- clients: Fixed a bug where when the semicolon at the end of a COPY INTO query + that reads from STDIN is at exactly a 10240 byte boundary in a file, + the data isn't read as input for the COPY INTO but instead as a new + SQL query. + +* Fri May 20 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.17-20220811 +- gdk: All accesses to the BACKUP directory need to be protected by the + same lock. The lock already existed (GDKtmLock), but wasn't used + consistently. This is now fixed. Hopefully this makes the hot snapshot + code more reliable. + * Fri May 20 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.15-20220520 - Rebuilt. - GH#7036: Generate column names instead of labels diff --git a/clients/ChangeLog-Archive b/clients/ChangeLog-Archive --- a/clients/ChangeLog-Archive +++ b/clients/ChangeLog-Archive @@ -1,6 +1,17 @@ # DO NOT EDIT THIS FILE -- MAINTAINED AUTOMATICALLY # This file contains past ChangeLog entries +* Fri Jun 10 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.17-20220811 +- Implemented dump of global grants, that is to say, grants for COPY INTO + and COPY FROM which grant permission to users to write to or read from + files on the server (COPY INTO queries without the ON CLIENT option). + +* Tue May 31 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.17-20220811 +- Fixed a bug where when the semicolon at the end of a COPY INTO query + that reads from STDIN is at exactly a 10240 byte boundary in a file, + the data isn't read as input for the COPY INTO but instead as a new + SQL query. + * Wed Feb 16 2022 Sjoerd Mullender <sjo...@acm.org> - 11.43.11-20220325 - Improved the handling of the \r (internal pager) command in mclient. It now properly counts the header of table, and when a (very) long diff --git a/clients/ChangeLog.Jan2022 b/clients/ChangeLog.Jan2022 --- a/clients/ChangeLog.Jan2022 +++ b/clients/ChangeLog.Jan2022 @@ -1,14 +1,3 @@ # ChangeLog file for clients # This file is updated with Maddlog -* Fri Jun 10 2022 Sjoerd Mullender <sjo...@acm.org> -- Implemented dump of global grants, that is to say, grants for COPY INTO - and COPY FROM which grant permission to users to write to or read from - files on the server (COPY INTO queries without the ON CLIENT option). - -* Tue May 31 2022 Sjoerd Mullender <sjo...@acm.org> -- Fixed a bug where when the semicolon at the end of a COPY INTO query - that reads from STDIN is at exactly a 10240 byte boundary in a file, - the data isn't read as input for the COPY INTO but instead as a new - SQL query. - diff --git a/clients/Tests/MAL-signatures-hge.test b/clients/Tests/MAL-signatures-hge.test --- a/clients/Tests/MAL-signatures-hge.test +++ b/clients/Tests/MAL-signatures-hge.test @@ -47711,7 +47711,7 @@ Replace _all_ matches of "pattern" in "o pcre replace_first command pcre.replace_first(X_0:str, X_1:str, X_2:str, X_3:str):str -PCREreplace_wrap; +PCREreplacefirst_wrap; Replace _the first_ match of "pattern" in "origin_str" with "replacement".@Parameter "flags" accept these flags: 'i', 'm', 's', and 'x'.@'e': if present, an empty string is considered to be a valid match@'i': if present, the match operates in case-insensitive mode.@Otherwise, in case-sensitive mode.@'m': if present, the match operates in multi-line mode.@'s': if present, the match operates in "dot-all"@The specifications of the flags can be found in "man pcreapi"@The flag letters may be repeated.@No other letters than 'e', 'i', 'm', 's' and 'x' are allowed in "flags".@Returns the replaced string, or if no matches found, the original string. pcre sql2pcre diff --git a/clients/Tests/MAL-signatures.test b/clients/Tests/MAL-signatures.test --- a/clients/Tests/MAL-signatures.test +++ b/clients/Tests/MAL-signatures.test @@ -36136,7 +36136,7 @@ Replace _all_ matches of "pattern" in "o pcre replace_first command pcre.replace_first(X_0:str, X_1:str, X_2:str, X_3:str):str -PCREreplace_wrap; +PCREreplacefirst_wrap; Replace _the first_ match of "pattern" in "origin_str" with "replacement".@Parameter "flags" accept these flags: 'i', 'm', 's', and 'x'.@'e': if present, an empty string is considered to be a valid match@'i': if present, the match operates in case-insensitive mode.@Otherwise, in case-sensitive mode.@'m': if present, the match operates in multi-line mode.@'s': if present, the match operates in "dot-all"@The specifications of the flags can be found in "man pcreapi"@The flag letters may be repeated.@No other letters than 'e', 'i', 'm', 's' and 'x' are allowed in "flags".@Returns the replaced string, or if no matches found, the original string. pcre sql2pcre diff --git a/clients/examples/C/streamcat.c b/clients/examples/C/streamcat.c --- a/clients/examples/C/streamcat.c +++ b/clients/examples/C/streamcat.c @@ -163,7 +163,7 @@ int cmd_read(char *argv[]) croak(1, "Unknown opener '%s'", opener_name); s = opener(filename); - if (s == NULL || mnstr_errnr(s)) { + if (s == NULL || mnstr_errnr(s) != MNSTR_NO__ERROR) { char *msg = mnstr_error(s); croak(2, "Opener %s failed: %s", opener_name, msg ? msg : "<no error message>"); } @@ -199,7 +199,7 @@ int cmd_read(char *argv[]) } if (wrapper != NULL) s = wrapper(s, parms); - if (s == NULL || mnstr_errnr(s)) { + if (s == NULL || mnstr_errnr(s) != MNSTR_NO__ERROR) { char *msg = mnstr_error(s); croak(2, "Opener %s failed: %s", opener_name, msg ? msg : "<no error message>"); } @@ -268,7 +268,7 @@ int cmd_write(char *argv[]) croak(1, "Unknown opener '%s'", opener_name); s = opener(filename); - if (s == NULL || mnstr_errnr(s)) { + if (s == NULL || mnstr_errnr(s) != MNSTR_NO__ERROR) { char *msg = mnstr_error(NULL); croak(2, "Opener %s failed: %s", opener_name, msg ? msg : ""); } @@ -312,7 +312,7 @@ int cmd_write(char *argv[]) } if (wrapper != NULL) s = wrapper(s, parms); - if (s == NULL || mnstr_errnr(s)) { + if (s == NULL || mnstr_errnr(s) != MNSTR_NO__ERROR) { char *msg = mnstr_error(s); croak(2, "Opener %s failed: %s", opener_name, msg ? msg : "<no error message>"); } diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c --- a/clients/mapiclient/dump.c +++ b/clients/mapiclient/dump.c @@ -641,7 +641,7 @@ dump_foreign_keys(Mapi mid, const char * if (tname == NULL && tid == NULL) mnstr_printf(toConsole, ";\n"); - if (mnstr_errnr(toConsole)) + if (mnstr_errnr(toConsole) != MNSTR_NO__ERROR) goto bailout; } if (mapi_error(mid)) @@ -656,12 +656,12 @@ bailout: mapi_explain_result(hdl, stderr); else if (mapi_error(mid)) mapi_explain_query(hdl, stderr); - else if (!mnstr_errnr(toConsole)) + else if (mnstr_errnr(toConsole) == MNSTR_NO__ERROR) fprintf(stderr, "malloc failure\n"); mapi_close_handle(hdl); } else if (mapi_error(mid)) mapi_explain(mid, stderr); - else if (!mnstr_errnr(toConsole)) + else if (mnstr_errnr(toConsole) == MNSTR_NO__ERROR) fprintf(stderr, "malloc failure\n"); return 1; @@ -962,7 +962,7 @@ dump_column_definition(Mapi mid, stream free(c_type); free(c_type_digits); free(c_type_scale); - if (mnstr_errnr(toConsole)) + if (mnstr_errnr(toConsole) != MNSTR_NO__ERROR) goto bailout; } if (mapi_error(mid)) @@ -1023,7 +1023,7 @@ dump_column_definition(Mapi mid, stream mnstr_printf(toConsole, ", "); dquoted_print(toConsole, c_column, NULL); cnt++; - if (mnstr_errnr(toConsole)) + if (mnstr_errnr(toConsole) != MNSTR_NO__ERROR) goto bailout; } if (cnt) @@ -1085,7 +1085,7 @@ dump_column_definition(Mapi mid, stream } else mnstr_printf(toConsole, ", "); dquoted_print(toConsole, c_column, NULL); - if (mnstr_errnr(toConsole)) + if (mnstr_errnr(toConsole) != MNSTR_NO__ERROR) goto bailout; } if (cnt) @@ -1116,12 +1116,12 @@ bailout: mapi_explain_result(hdl, stderr); else if (mapi_error(mid)) mapi_explain_query(hdl, stderr); - else if (!mnstr_errnr(toConsole)) + else if (mnstr_errnr(toConsole) == MNSTR_NO__ERROR) fprintf(stderr, "malloc failure\n"); mapi_close_handle(hdl); } else if (mapi_error(mid)) mapi_explain(mid, stderr); - else if (!mnstr_errnr(toConsole)) + else if (mnstr_errnr(toConsole) == MNSTR_NO__ERROR) fprintf(stderr, "malloc failure\n"); if (query != NULL) free(query); @@ -1397,7 +1397,7 @@ describe_table(Mapi mid, const char *sch } else mnstr_printf(toConsole, ", "); dquoted_print(toConsole, c_name, NULL); - if (mnstr_errnr(toConsole)) + if (mnstr_errnr(toConsole) != MNSTR_NO__ERROR) goto bailout; } mapi_close_handle(hdl); @@ -1459,12 +1459,12 @@ bailout: mapi_explain_result(hdl, stderr); else if (mapi_error(mid)) mapi_explain_query(hdl, stderr); - else if (!mnstr_errnr(toConsole)) + else if (mnstr_errnr(toConsole) == MNSTR_NO__ERROR) fprintf(stderr, "malloc failure\n"); mapi_close_handle(hdl); } else if (mapi_error(mid)) mapi_explain(mid, stderr); - else if (!mnstr_errnr(toConsole)) + else if (mnstr_errnr(toConsole) == MNSTR_NO__ERROR) fprintf(stderr, "malloc failure\n"); bailout2: if (view) @@ -1566,7 +1566,7 @@ describe_sequence(Mapi mid, const char * mnstr_printf(toConsole, " CACHE %s", cacheinc); mnstr_printf(toConsole, " %sCYCLE;\n", strcmp(cycle, "true") == 0 ? "" : "NO "); comment_on(toConsole, "SEQUENCE", schema, name, NULL, remark); _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org