Changeset: c5015023f721 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c5015023f721
Modified Files:
gdk/gdk.h
gdk/gdk_join.c
Branch: cnting_sketches
Log Message:
Merge with pp_hashjoin branch.
diffs (truncated from 7880 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
@@ -132,6 +132,11 @@ jobs:
PATH=$HOME/MDB/bin:$PATH $HOME/MDB/bin/Mtest.py -r --debug=0 --ci
--no-html --TSTTRGBASE=.
if: runner.os != 'Windows'
+ - name: mtest-pipeline
+ run: |
+ PATH=$HOME/MDB/bin:$PATH $HOME/MDB/bin/Mtest.py -r --debug=0 --ci
--no-html --TSTTRGBASE=. --pipeline
+ if: runner.os != 'Windows'
+
- name: ctest
shell: pwsh
run: |
@@ -147,6 +152,13 @@ jobs:
python C:\MDB\bin\Mtest.py -r --debug=0 --ci --no-html --TSTTRGBASE=.
if: runner.os == 'Windows'
+ - name: mtest
+ shell: pwsh
+ run: |
+ $env:PATH =
'C:\MDB\lib;C:\MDB\lib\monetdb5;C:\MDB\bin;C:\vcpkg\installed\x64-windows\bin;C:\vcpkg\installed\x64-windows\debug\bin;'
+ $env:PATH
+ python C:\MDB\bin\Mtest.py -r --debug=0 --ci --no-html
--TSTTRGBASE=. --pipeline
+ if: runner.os == 'Windows'
+
- name: Tar files
run: tar -cvf mtests.tar mTests
- name: Publish mtest results
diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -855,3 +855,5 @@ b4c2936c46f28ad6b3e59ed5a1a844726d521994
b4c2936c46f28ad6b3e59ed5a1a844726d521994 Dec2025_release
69f4fe2ad29b5d50d9ef06ad76639faaa60fcfa8 Dec2025_3
69f4fe2ad29b5d50d9ef06ad76639faaa60fcfa8 Dec2025_SP1_release
+691e862e16ceb7f720536063ed6d3c2e3d11e33a Dec2025_5
+691e862e16ceb7f720536063ed6d3c2e3d11e33a Dec2025_SP2_release
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 Mar 4 2026 Joeri van Ruth <[email protected]> -
11.55.5-20260403
+- Suppress error messages in merovingian.log when incoming connections
+ are closed by the client before any I/O takes place.
+ Service health monitoring tools tend to do this periodically to check
+ if MonetDB is still up.
+
* Tue Dec 16 2025 svetlin <[email protected]> -
11.55.1-20251209
- Extended MonetDB’s memory allocator framework from the SQL layer to all
layers of the database server. The main features of the allocator framework
diff --git a/ChangeLog.Dec2025 b/ChangeLog.Dec2025
--- a/ChangeLog.Dec2025
+++ b/ChangeLog.Dec2025
@@ -1,10 +1,3 @@
# ChangeLog file for devel
# This file is updated with Maddlog
-* Wed Mar 4 2026 Joeri van Ruth <[email protected]>
-- Suppress error messages in merovingian.log when incoming connections
- are closed by the client before any I/O takes place.
- Service health monitoring tools tend to do this periodically to check
- if MonetDB is still up.
-
-
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -93,7 +93,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/Dec2025-SP1/MonetDB-%{version}.tar.bz2
+Source:
https://www.monetdb.org/downloads/sources/Dec2025-SP2/MonetDB-%{version}.tar.bz2
# We need checkpolicy and selinux-policy-devel for the SELinux policy.
BuildRequires: systemd-rpm-macros
@@ -582,6 +582,7 @@ embedded library (%{name}-embedded).
%{_libdir}/monetdb5*/lib_capi.so
%endif
%{_libdir}/monetdb5*/lib_csv.so
+%{_libdir}/monetdb5*/lib_parquet.so
%{_libdir}/monetdb5*/lib_generator.so
%{_libdir}/monetdb5*/lib_monetdb_loader.so
@@ -1088,6 +1089,148 @@ rm "${RPM_BUILD_ROOT}"%{_unitdir}/monetd
%endif
%changelog
+* Fri Apr 03 2026 Sjoerd Mullender <[email protected]> - 11.55.5-20260403
+- Rebuilt.
+- GH#7728: MonetDB server (Mar2025-SP2-release) crashes at `strCmp`
+- GH#7770: Assertion failure in query_outer_aggregated with aggregated
+ scalar subquery in INSERT VALUES
+- GH#7788: mserver crash: rel_order_by raising assertion
+ is_project(rel->op) fail
+- GH#7789: mserver crash : rel_bin.c exp_bin: Assertion `0' failed.
+- GH#7790: mserver5 crash: rel_bin rel2bin_insert Assertion `!n && !m'
+ failed
+- GH#7791: mserver5 crash : rel_bin.c Assertion `sql->session->status ==
+ -10' failed.
+- GH#7792: Mserver crash:rel_bin.c stmt *rel2bin_join: Assertion
+ `sql->session->status == -10' failed
+- GH#7793: mserver crash:rel2bin_semijoin Assertion `sql->session->status
+ == -10' failed.
+- GH#7794: mserver crash: rel_bin rel2bin_groupby Assertion
+ `sql->session->status == -10'
+- GH#7795: mserver crash: rel2bin_project Assertion `sql->session->status
+ == -10' failed.
+- GH#7796: mserver crash : stmt_alias_ Assertion `label' failed.
+- GH#7797: monetdb crash :rel_exp.c rel_find_exp_and_corresponding_rel_
+ Assertion `e->nid' failed.
+- GH#7800: mserver crash: rel_used_projections Assertion `e->nid &&
+ exps_bind_nid(exps, e->nid)' failed
+- GH#7801: mserver crash:exp_rel_visitor Assertion `e' failed.
+- GH#7813: Top N not pushed down to Remote Tables in Merge Table
+ (v11.53.15)
+- GH#7815: Server SIGSEGV in `ALGmarkselect` triggered by `CAST`·`WHEN NOT
+ NULL`·`UNION SELECT DISTINCT` feature intersection
+- GH#7816: table returning function with split_part() and
+ generate_series() crashes server when called multiple times
+- GH#7818: Server crash in `GDKanalytical_covariance_samp` triggered by
+ NULL-argument statistical window functions combined with divide-by-zero
+ frame bounds and empty UNION range
+- GH#7820: MonetDB server crashes with "unexpected end of file" on SELECT
+ with scalar subquery and EXISTS referencing system tables
+- GH#7826: Monetdb server crash on SELECT with nested derived tables,
+ EXISTS subquery with LIMIT, and complex boolean predicates on system
+ catalog tables
+- GH#7832: Server crash in `rel_push_select_down` (SQL optimizer)
+ triggered by row-value comparison warm-up sequence and `rank() OVER
+ (PARTITION BY mixed-type literals)`
+- GH#7833: Bug Report — Server crash in `rel_push_select_down` (SQL
+ optimizer) triggered by `RANK() OVER` in `HAVING NOT x < ANY (aggregate
+ comparison)` with multi-column MAX/MIN SELECT
+- GH#7834: Server crash in `rel_push_select_down` (SQL optimizer)
+ triggered by doubly-nested recursive CTE inside
+ `STDDEV_POP(NULLIF(...))` with `CUBE` GROUP BY and correlated NOT IN
+ subquery
+- GH#7835: Server crash in `rel_push_select_down` (SQL optimizer)
+ triggered by `NULLIF(recursive_CTE, NULL)` inside HAVING with `GROUP BY
+ CUBE` and triple-UNION source
+- GH#7836: MonetDB server crash on SELECT with CASE WHEN containing nested
+ EXISTS, LATERAL subquery with LIMIT, and complex boolean predicates on
+ system catalog tables
+- GH#7837: MonetDB server crash on SELECT with nested CASE WHEN,
+ correlated EXISTS subqueries, LATERAL join with LIMIT/OFFSET, and
+ complex constant-folded predicates
+- GH#7838: MonetDB server crash on SELECT with nested joins, EXISTS
+ subquery with scalar aggregates, and OR in ON conditions
+- GH#7839: TCP health check floods merovingian log with errors
+- GH#7840: MonetDB server crash during optimization of SELECT with nested
+ LATERAL and multiple scalar aggregate subqueries
+- GH#7841: Server crash in `rel_push_select_down` (SQL optimizer)
+ triggered by nested recursive CTE inside `STDDEV_POP(NULLIF(...))` with
+ `CUBE` grouping and BETWEEN on `md5(NULL)`
+- GH#7842: Server crash in `rel_push_select_down` (SQL optimizer)
+ triggered by `max() OVER` in UNION with `GROUP BY CUBE` and deeply
+ nested recursive CTE in NOT IN HAVING predicate
+- GH#7843: Server crash during signal handling (`vscanf`/`psiginfo`)
+ triggered by multi-statement sequence with `rank() OVER (PARTITION BY
+ mixed-type literals)` after simple comparison warm-up
+- GH#7844: Server crash in `_rel_aggr` (aggregate relation builder)
+ triggered by `SUM(DISTINCT)` after multi-statement escape-character
+ comparison sequence and CREATE/DROP TABLE
+- GH#7845: Server crash in `bin_find_smallest_column`
+- GH#7846: Server crash in `do_covariance_and_correlation`
+- GH#7847: MonetDB server crash during SELECT with nested EXISTS, CASE
+ expression, and correlated subquery referencing derived table columns
+- GH#7848: MonetDB server crash during SELECT with LATERAL subquery,
+ nested CASE expressions, and scalar subqueries
+- GH#7849: MonetDB server crash during SELECT with nested EXISTS, mixed
+ JOIN types, and correlated derived-table subquery
+- GH#7850: MonetDB server crash during SELECT with LATERAL subquery, mixed
+ JOIN types, and nested CASE expressions
+- GH#7851: MonetDB server crash during MERGE with deeply nested LATERAL
+ subqueries and correlated EXISTS predicates
+- GH#7852: Server crash in `exp_bin` (expression code generation)
+ triggered by row-value comparison warm-up sequence and `COUNT(*) OVER
+ (ROWS BETWEEN CASE ... PRECEDING AND CURRENT ROW)` with complex NOT IN
+ subquery
+- GH#7853: Server crash in `exp_bin` (expression code generation)
+ triggered by `5 IN (subquery) AND 6 IN (subquery)` with HAVING
+ containing recursive CTE
+- GH#7854: Server crash in `exp_freevar` during `rel_unnest_dependent`
+ (deep recursion) triggered by doubly-nested recursive CTE with
+ `ltrim(rtrim(sql_min(...)))` seed and deeply correlated NOT IN subquery
+ with `SUM(DISTINCT CAST(NULL IN (...) AS INTEGER))`
+- GH#7855: Server crash in `exp_has_freevar`
+- GH#7856: Server crash in `exp_match`
+- GH#7857: Server crash in `exp_rel_visitor`
+- GH#7859: Server crash in `getModule`
+- GH#7862: Server crash in `rel_crossproduct`
+- GH#7865: Server crash in `rel_get_statistics_`
+- GH#7867: Server crash in `rel_optimize_projections_`
+- GH#7870: Server crash in `rel_set_type`
+- GH#7872: Server crash in `rel_unnest_simplify`
+- GH#7873: MonetDB crash with deeply nested LATERAL and EXISTS queries
+- GH#7874: MonetDB crash on SELECT with nested LATERAL subqueries,
+ multi-level JOINs, and correlated EXISTS predicates
+- GH#7875: MonetDB server crash during SELECT with multiple LATERAL
+ subqueries, complex JOIN conditions, and nested CASE expressions
+- GH#7876: MonetDB server crash during SELECT with RIGHT JOIN, EXISTS
+ subquery, and complex constant-folded expressions
+- GH#7877: MonetDB crash with nested RIGHT JOINs, correlated EXISTS
+ subqueries, and constant-based join predicates
+- GH#7878: MonetDB crash with minimal LATERAL subquery and nested CASE in
+ WHERE
+- GH#7880: MonetDB crash (SIGSEGV) on query with nested LATERAL subqueries
+ and CASE expression, no direct reason reported by mserver5
+- GH#7882: Incorrect optimization of LATERAL subquery with DISTINCT and
+ outer reference leading to wrong results or planner error
+- GH#7883: MonetDB crash (SIGSEGV) on query with RIGHT JOIN and Subquery,
+ no direct reason reported by mserver5
+- GH#7884: MonetDB crash (SIGSEGV) on query with Lateral subquery and a
+ redundant always-true predicate, no direct reason reported by mserver5
+- GH#7886: LOCAL TEMPORARY VIEW not visible via CTE
+- GH#7888: MonetDB produces different results for two logically equivalent
+ UPDATE statements. The mutated statement differs from the original only
+ by adding a dead boolean branch inside the predicate: AND 1 = 0
+- GH#7889: MonetDB produces different results for two `DELETE` statements
+ whose `EXISTS` subqueries should be equivalent in this test case.
+- GH#7890: Wrong result for semantically equivalent INSERT ... SELECT ...
+ WHERE EXISTS(...) with UNION / EXCEPT / INTERSECT
+
+* Wed Mar 4 2026 Joeri van Ruth <[email protected]> -
11.55.5-20260403
+- MonetDB: Suppress error messages in merovingian.log when incoming connections
+ are closed by the client before any I/O takes place.
+ Service health monitoring tools tend to do this periodically to check
+ if MonetDB is still up.
+
* Mon Feb 16 2026 Sjoerd Mullender <[email protected]> - 11.55.3-20260216
- Rebuilt.
- GH#7690: CASE operator inside aggregate function error
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
@@ -3619,6 +3619,16 @@ pattern algebra.firstn(X_0:bat[:any], X_
ALGfirstn
Calculate first N values of B with candidate list S
algebra
+firstn
+pattern algebra.firstn(X_0:bat[:any], X_1:bat[:oid], X_2:bat[:oid], X_3:lng,
X_4:lng, X_5:bit, X_6:bit, X_7:bit, X_8:bit) (X_9:bat[:oid], X_10:bat[:oid])
+ALGfirstn
+Calculate first N values of B with candidate list S
+algebra
+firstn
+pattern algebra.firstn(X_0:bat[:any], X_1:bat[:oid], X_2:bat[:oid], X_3:lng,
X_4:lng, X_5:bit, X_6:bit, X_7:bit, X_8:bit):bat[:oid]
+ALGfirstn
+Calculate first N values of B with candidate list S
+algebra
groupby
command algebra.groupby(X_0:bat[:oid], X_1:bat[:lng]):bat[:oid]
ALGgroupby
@@ -3629,6 +3639,11 @@ pattern algebra.groupedfirstn(X_0:lng, X
ALGgroupedfirstn
Grouped firstn
algebra
+groupedfirstn
+pattern algebra.groupedfirstn(X_0:lng, X_1:lng, X_2:bit, X_3:bat[:oid],
X_4:bat[:oid], X_5:any...):bat[:oid]
+ALGgroupedfirstn
+Grouped firstn
+algebra
intersect
command algebra.intersect(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid],
X_3:bat[:oid], X_4:bit, X_5:bit, X_6:lng):bat[:oid]
ALGintersect
@@ -47451,7 +47466,12 @@ return new heap sink
heapn
order
command heapn.order(X_0:bat[:oid]):bat[:oid]
-HEAPorder
+HEAPorder1
+Order.
+heapn
+order
+command heapn.order(X_0:bat[:oid], X_1:lng):bat[:oid]
+HEAPorder2
Order.
heapn
projection
@@ -49988,6 +50008,41 @@ wrapper
pattern optimizer.wrapper(X_0:str, X_1:str):str
OPTwrapper
Fake optimizer
+parquet
+epilogue
+command parquet.epilogue():void
+PARQUETepilogue
+(empty)
+parquet
+file_metadata
+pattern parquet.file_metadata(X_0:str) (X_1:bat[:str], X_2:bat[:lng],
X_3:bat[:lng], X_4:bat[:lng], X_5:bat[:lng], X_6:bat[:str], X_7:bat[:str])
+PARQUETfile_metadata
+Read parquet file metadata
+parquet
+metadata
+pattern parquet.metadata(X_0:str) (X_1:bat[:lng], X_2:bat[:lng],
X_3:bat[:lng], X_4:bat[:lng], X_5:bat[:lng], X_6:bat[:lng], X_7:bat[:lng],
X_8:bat[:str], X_9:bat[:str], X_10:bat[:str], X_11:bat[:str], X_12:bat[:lng],
X_13:bat[:lng], X_14:bat[:str], X_15:bat[:str], X_16:bat[:str], X_17:bat[:str],
X_18:bat[:lng], X_19:bat[:lng], X_20:bat[:lng], X_21:bat[:lng], X_22:bat[:lng])
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]