Changeset: 708cddc3a984 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/708cddc3a984
Modified Files:
clients/mapiclient/dump.c
monetdb5/modules/atoms/inet.c
sql/backends/monet5/CMakeLists.txt
sql/backends/monet5/sql_result.c
sql/backends/monet5/sql_upgrades.c
Branch: inet4+6
Log Message:
Merge with default branch.
diffs (truncated from 3946 to 300 lines):
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -98,8 +98,8 @@ jobs:
-DCMAKE_INSTALL_PREFIX=$HOME/MDB \
-DPY3INTEGRATION=OFF \
-DRINTEGRATION=OFF \
- -DCMAKE_BUILD_TYPE=Release \
- -DASSERT=OFF \
+ -DCMAKE_BUILD_TYPE=Debug \
+ -DASSERT=ON \
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \
-DBISON_EXECUTABLE=/opt/homebrew/opt/bison/bin/bison \
-DCMAKE_SUMMARY=ON
diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -845,3 +845,4 @@ 53b71d71caccc81358785cb852a186500fc95b08
77b1be95dc79fe61215a34b84ed67e7097323977 Mar2025_7
6d5be335a6c739e61682366f7a84b67b0cfc0be6 Mar2025_9
6d5be335a6c739e61682366f7a84b67b0cfc0be6 Mar2025_SP1_release
+a63e11c1fd1b2dfba2a0ed8a985455286bc023d3 Mar2025_11
diff --git a/ChangeLog-Archive b/ChangeLog-Archive
--- a/ChangeLog-Archive
+++ b/ChangeLog-Archive
@@ -1,6 +1,12 @@
# DO NOT EDIT THIS FILE -- MAINTAINED AUTOMATICALLY
# This file contains past ChangeLog entries
+* Wed Aug 13 2025 Sjoerd Mullender <[email protected]> - 11.53.11-20250821
+- It is now relatively easy to configure the location of the database farm
+ (aka dbfarm) directory when using systemd. Just create an override
+ file for the monetdbd service and add an Environment entry for DBFARM
+ pointing to the new directory.
+
* Thu May 8 2025 Sjoerd Mullender <[email protected]> - 11.53.5-20250627
- It is now possible to specify an idle timeout using --set
idle_timeout=<seconds> (see mserver5 manual page) which gets triggered
diff --git a/ChangeLog.Mar2025 b/ChangeLog.Mar2025
--- a/ChangeLog.Mar2025
+++ b/ChangeLog.Mar2025
@@ -1,9 +1,3 @@
# ChangeLog file for devel
# This file is updated with Maddlog
-* Wed Aug 13 2025 Sjoerd Mullender <[email protected]>
-- It is now relatively easy to configure the location of the database farm
- (aka dbfarm) directory when using systemd. Just create an override
- file for the monetdbd service and add an Environment entry for DBFARM
- pointing to the new directory.
-
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -95,7 +95,7 @@ Group: Applications/Databases
License: MPL-2.0
URL: https://www.monetdb.org/
BugURL: https://github.com/MonetDB/MonetDB/issues
-Source:
https://www.monetdb.org/downloads/sources/Mar2025-SP1/MonetDB-%{version}.tar.bz2
+Source:
https://www.monetdb.org/downloads/sources/Mar2025-SP2/MonetDB-%{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
@@ -1057,6 +1057,55 @@ rm "${RPM_BUILD_ROOT}"%{_unitdir}/monetd
%endif
%changelog
+* Thu Aug 21 2025 Sjoerd Mullender <[email protected]> - 11.53.11-20250821
+- Rebuilt.
+- GH#7643: Unable to process field with split_part(). Facing Issue
+ "client4681: exp_bin: CRITICAL: Could not find (null).rate"
+- GH#7647: 'mat.packIncrement' undefined
+- GH#7648: Unexpected Right Join Assertion Error
+- GH#7649: Unexpected Inner Join Crash
+- GH#7650: Unexpected Right Join Crash
+- GH#7655: slow concurrent insert
+- GH#7656: Primary key reported as being a foreign key to itself
+- GH#7657: MonetDB Mar2025-SP1 crashes at `sqlparse()` with a crafted
+ MERGE statement
+- GH#7659: MonetDB Mar2025-SP1 crashes at `rel_select_add_exp()` with a
+ crafted CREATE TRIGGER statement
+- GH#7660: MonetDB Mar2025-SP1 crashes at `subrel_bin()` with a COPY
+ statement
+- GH#7661: MonetDB Mar2025-SP1 crashes at `dlist_length()` with a crafted
+ CREATE TRIGGER statement
+- GH#7671: MonetDB Mar2025-SP1 crashes at `BLOBlength()`
+- GH#7675: Debian service start on new install not getting environment
+ variables from /etc/default/monetdb-sql
+- GH#7680: `UNION ALL` doesn't work as expected
+- GH#7681: Describe table feature not working correctly
+- GH#7682: replacing a login trigger crashes server
+- GH#7683: wrong Driver= and Setup= libary paths stored in
+ /etc/odbcinst.ini after installation of MonetDB ODBC driver on ubuntu
+- GH#7686: DELETE FROM empty table should always be a no-op
+- GH#7688: exists with nulls gives incorrect result
+
+* Wed Aug 13 2025 Sjoerd Mullender <[email protected]> - 11.53.11-20250821
+- MonetDB: It is now relatively easy to configure the location of the database
farm
+ (aka dbfarm) directory when using systemd. Just create an override
+ file for the monetdbd service and add an Environment entry for DBFARM
+ pointing to the new directory.
+
+* Tue Aug 5 2025 Sjoerd Mullender <[email protected]> - 11.53.11-20250821
+- gdk: The SIGUSR1 output now displays counts for memory sizes in a
+ human-readable format next to the original byte counts.
+
+* Fri Aug 1 2025 Sjoerd Mullender <[email protected]> - 11.53.11-20250821
+- monetdb5: The PCRE module has been ported to the PCRE2 version of the
library.
+ The main difference is in the regexp_replace function which now no
+ longer accepts \ to introduce replacements. Only $ is accepted (it
+ was already accepted before).
+
+* Tue Jul 8 2025 Niels Nes <[email protected]> - 11.53.11-20250821
+- sql: Fixed issue #7655, now the segments keep the number of deleted
+ rows. Only search for reuse when deleted rows are available.
+
* Fri Jul 04 2025 Sjoerd Mullender <[email protected]> - 11.53.9-20250704
- Rebuilt.
- GH#7629: monetdbd causes SELinux denial
diff --git a/clients/examples/C/smack00.c b/clients/examples/C/smack00.c
--- a/clients/examples/C/smack00.c
+++ b/clients/examples/C/smack00.c
@@ -65,9 +65,9 @@ main(int argc, char **argv)
for (i = 0; i < n; i++) {
if (lang==1)
- snprintf(buf, 40, "select %d;", i);
+ snprintf(buf, sizeof(buf), "select %d;", i);
else
- snprintf(buf, 40, "io.print(%d);", i);
+ snprintf(buf, sizeof(buf), "io.print(%d);", i);
if ((hdl = mapi_query(dbh, buf)) == NULL || mapi_error(dbh))
die(dbh, hdl);
while ( (/*line= */ mapi_fetch_line(hdl)) != NULL) {
diff --git a/clients/examples/C/smack01.c b/clients/examples/C/smack01.c
--- a/clients/examples/C/smack01.c
+++ b/clients/examples/C/smack01.c
@@ -70,9 +70,9 @@ main(int argc, char **argv)
die(dbh,NULL);
if (lang==1)
- snprintf(buf, 40, "select %d;", i);
+ snprintf(buf, sizeof(buf), "select %d;", i);
else
- snprintf(buf, 40, "io.print(%d);", i);
+ snprintf(buf, sizeof(buf), "io.print(%d);", i);
if ((hdl = mapi_query(dbh, buf)) == NULL || mapi_error(dbh))
die(dbh, hdl);
while ((line = mapi_fetch_line(hdl))) {
diff --git a/clients/examples/C/testsfile.c b/clients/examples/C/testsfile.c
--- a/clients/examples/C/testsfile.c
+++ b/clients/examples/C/testsfile.c
@@ -488,7 +488,7 @@ run_tests_inner(stream *s, int verbose)
while (true) {
lineno++;
- sprintf(location_lineno, "%d", lineno);
+ snprintf(location_lineno, 100 - 1, "%d", lineno);
ssize_t nread = mnstr_readline(s, line_buffer,
sizeof(line_buffer));
if (nread == 0)
break;
diff --git a/clients/mapiclient/ReadlineTools.c
b/clients/mapiclient/ReadlineTools.c
--- a/clients/mapiclient/ReadlineTools.c
+++ b/clients/mapiclient/ReadlineTools.c
@@ -369,7 +369,7 @@ invoke_editor(int cnt, int key) {
}
}
- snprintf(editor_command, BUFFER_SIZE, "%s %s", editor, template);
+ snprintf(editor_command, sizeof(editor_command), "%s %s", editor,
template);
if (system(editor_command) != 0) {
readline_show_error("invoke_editor: Starting editor failed\n");
goto bailout;
@@ -472,7 +472,7 @@ init_readline(Mapi mid, const char *lang
if (save_history) {
int len;
if (getenv("HOME") != NULL) {
- len = snprintf(_history_file, FILENAME_MAX,
+ len = snprintf(_history_file, sizeof(_history_file),
"%s/.mapiclient_history_%s",
getenv("HOME"), language);
if (len == -1 || len >= FILENAME_MAX)
diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -2637,9 +2637,9 @@ bailout:
int
dump_database(Mapi mid, stream *sqlf, const char *ddir, const char *ext, bool
describe, bool useInserts, bool noescape)
{
- const char start_trx[] = "START TRANSACTION";
- const char end[] = "ROLLBACK";
- const char types[] =
+ static const char start_trx[] = "START TRANSACTION";
+ static const char end[] = "ROLLBACK";
+ static const char types[] =
"SELECT s.name, "
"t.systemname, "
"t.sqlname "
@@ -2678,13 +2678,13 @@ dump_database(Mapi mid, stream *sqlf, co
"AND ui.name <> 'monetdb' "
"AND ui.name <> '.snapshot' "
"ORDER BY ui.name";
- const char roles[] =
+ static const char roles[] =
"SELECT name "
"FROM sys.auths "
"WHERE name NOT IN (SELECT name FROM sys.db_user_info) "
"AND grantor <> 0 "
"ORDER BY name";
- const char grants[] =
+ static const char grants[] =
/* all grants granting roles to users excepting the default
role */
"SELECT a1.name, "
"a2.name "
@@ -2697,7 +2697,7 @@ dump_database(Mapi mid, stream *sqlf, co
"AND a1.name = ui.name "
"AND a2.id <> ui.default_role "
"ORDER BY a1.name, a2.name";
- const char table_grants[] =
+ static const char table_grants[] =
"SELECT s.name, t.name, "
"a.name, "
"sum(p.privileges), "
@@ -2714,7 +2714,7 @@ dump_database(Mapi mid, stream *sqlf, co
"AND p.grantable = go.id "
"GROUP BY s.name, t.name, a.name, g.name, go.opt "
"ORDER BY s.name, t.name, a.name, g.name, go.opt";
- const char column_grants[] =
+ static const char column_grants[] =
"SELECT s.name, t.name, "
"c.name, a.name, "
"pc.privilege_code_name, "
@@ -2736,7 +2736,7 @@ dump_database(Mapi mid, stream *sqlf, co
"AND p.privileges = pc.privilege_code_id "
"AND p.grantable = go.id "
"ORDER BY s.name, t.name, c.name, a.name, g.name, p.grantable";
- const char function_grants[] =
+ static const char function_grants[] =
"SELECT f.id, "
"s.name, "
"f.name, "
@@ -2773,7 +2773,7 @@ dump_database(Mapi mid, stream *sqlf, co
"f.id, "
"a.inout DESC, "
"a.number";
- const char global_grants[] =
+ static const char global_grants[] =
"SELECT a.name, pc.grnt, g.name, go.opt "
"FROM sys.privileges p, "
"sys.auths a, "
@@ -2786,22 +2786,22 @@ dump_database(Mapi mid, stream *sqlf, co
"AND p.privileges = pc.id "
"AND p.grantable = go.id "
"ORDER BY a.name, g.name, go.opt";
- const char schemas[] =
+ static const char schemas[] =
"SELECT s.name, a.name, rem.remark "
"FROM sys.schemas s LEFT OUTER JOIN sys.comments rem ON s.id =
rem.id, "
"sys.auths a "
"WHERE s.\"authorization\" = a.id "
"AND s.system = FALSE "
"ORDER BY s.name";
- const char sequences1[] =
+ static const char sequences1[] =
"SELECT sch.name, seq.name, rem.remark "
"FROM sys.schemas sch, "
"sys.sequences seq LEFT OUTER JOIN sys.comments rem ON
seq.id = rem.id "
"WHERE sch.id = seq.schema_id "
"ORDER BY sch.name, seq.name";
- const char sequences2[] =
+ static const char sequences2[] =
"SELECT * FROM sys.describe_sequences ORDER BY sch, seq";
- const char tables[] =
+ static const char tables[] =
"SELECT t.id AS id, "
"s.name AS sname, "
"t.name AS name, "
@@ -2812,7 +2812,7 @@ dump_database(Mapi mid, stream *sqlf, co
"AND t.system = FALSE "
"AND s.id = t.schema_id "
"ORDER BY id";
- const char mergetables[] =
+ static const char mergetables[] =
"SELECT subq.s1name, "
"subq.t1name, "
"subq.s2name, "
@@ -2841,7 +2841,7 @@ dump_database(Mapi mid, stream *sqlf, co
"ON subq.id = table_partitions.table_id";
/* we must dump views, functions/procedures and triggers in order
* of creation since they can refer to each other */
- const char views_functions_triggers[] =
+ static const char views_functions_triggers[] =
"with vft (sname, name, id, query, remark) AS ("
"SELECT s.name AS sname, " /* views */
"t.name AS name, "
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -2533,7 +2533,7 @@ doFile(Mapi mid, stream *fp, bool useins
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]