Changeset: f121a9c0843a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/f121a9c0843a Modified Files: gdk/ChangeLog.Dec2023 monetdb5/ChangeLog.Dec2023 sql/ChangeLog.Dec2023 sql/backends/monet5/rel_bin.c sql/server/rel_dump.c sql/server/rel_exp.c sql/server/rel_optimize_others.c sql/server/rel_optimize_sel.c sql/server/rel_propagate.c sql/server/rel_rel.c sql/server/rel_rel.h sql/server/rel_rewriter.c sql/server/rel_select.c sql/server/rel_statistics.c sql/server/rel_unnest.c sql/server/sql_partition.c Branch: balanced_union Log Message:
Merges with default diffs (truncated from 169809 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -823,3 +823,4 @@ 1230526af30f40eeea30fb87c47c3e414920561f 95d8feaa1167b5ba87bd99253c3f4e62ebf528a1 Dec2023_3 dcc8c702e685a4faf21ccf663028d1bc3d1165d1 Dec2023_5 dcc8c702e685a4faf21ccf663028d1bc3d1165d1 Dec2023_SP1_release +d656785f49ee62c19705722aa6b7c171904c64d5 Dec2023_7 diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -91,7 +91,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/Dec2023-SP1/%{name}-%{version}.tar.bz2 +Source: https://www.monetdb.org/downloads/sources/Dec2023-SP2/%{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 @@ -679,7 +679,6 @@ This package contains files needed to de %files SQL-server5-devel %defattr(-,root,root) -%{_includedir}/monetdb/exception_buffer.h %{_includedir}/monetdb/opt_backend.h %{_includedir}/monetdb/rel_*.h %{_includedir}/monetdb/sql*.h @@ -922,6 +921,31 @@ fi %endif %changelog +* Tue Apr 09 2024 Sjoerd Mullender <sjo...@acm.org> - 11.49.7-20240409 +- Rebuilt. +- GH#7469: Crash when using `CONTAINS` +- GH#7479: MonetDB server crashes in `exp_ref` +- GH#7490: commonTerms optimizer no longer works +- GH#7495: Crash when simultaneously querying and updating a string column. + +* Thu Mar 28 2024 Sjoerd Mullender <sjo...@acm.org> - 11.49.7-20240409 +- gdk: Threads have their own list of free bats. The list was not returned + to the system when a thread exited, meaning that the free bats that + were in the list would not be reused by any thread. This has been + fixed. + +* Tue Mar 19 2024 Sjoerd Mullender <sjo...@acm.org> - 11.49.7-20240409 +- monetdb5: Fixed interaction between mserver5 and remote mserver5 when only one + of the two has 128 bit integer support. + +* Tue Mar 19 2024 Sjoerd Mullender <sjo...@acm.org> - 11.49.7-20240409 +- sql: Fixed issue where equal column aliases were created. When those + aliases were parsed on the remote side it could give crashes. + +* Mon Mar 18 2024 Sjoerd Mullender <sjo...@acm.org> - 11.49.7-20240409 +- gdk: Fixed a couple of deadlock situations, one actually observed, one + never observed. + * Tue Mar 12 2024 Sjoerd Mullender <sjo...@acm.org> - 11.49.5-20240312 - Rebuilt. - GH#7390: Some MonetDB Server crashes found diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py --- a/NT/mksqlwxs.py +++ b/NT/mksqlwxs.py @@ -187,7 +187,7 @@ def main(): print(r' <Directory Id="include" Name="include">') print(r' <Directory Id="monetdb" Name="monetdb">') id = comp(extend, id, 16, - sorted([r'include\monetdb\{}'.format(x) for x in filter(lambda x: (x.startswith('gdk') or x.startswith('monet') or x.startswith('mal') or x.startswith('sql') or x.startswith('rel') or x.startswith('store') or x.startswith('exception') or x.startswith('opt_backend')) and x.endswith('.h'), os.listdir(os.path.join(sys.argv[3], 'include', 'monetdb')))] + + sorted([r'include\monetdb\{}'.format(x) for x in filter(lambda x: (x.startswith('gdk') or x.startswith('monet') or x.startswith('mal') or x.startswith('sql') or x.startswith('rel') or x.startswith('store') or x.startswith('opt_backend')) and x.endswith('.h'), os.listdir(os.path.join(sys.argv[3], 'include', 'monetdb')))] + [r'include\monetdb\copybinary.h', r'include\monetdb\mapi.h', r'include\monetdb\mapi_querytype.h', 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 @@ -5,51302 +5,50917 @@ select * from sys.malfunctions() order b ---- aggr Collect -command aggr.Collect(X_0:bat[:wkb]):wkb +command aggr.Collect(X_0:bat[:wkb]):wkb wkbCollectAggr; TODO aggr MakeLine -command aggr.MakeLine(X_0:bat[:wkb]):wkb +command aggr.MakeLine(X_0:bat[:wkb]):wkb wkbMakeLineAggr; Gets a BAT with point or linestring geometries and returns a single linestring geometry aggr all -command aggr.all(X_0:bat[:any_1]):any_1 +command aggr.all(X_0:bat[:any_1]):any_1 SQLall; if all values in b are equal return this, else nil aggr allnotequal -pattern aggr.allnotequal(X_0:bat[:any_1], X_1:bat[:any_1]):bit +pattern aggr.allnotequal(X_0:bat[:any_1], X_1:bat[:any_1]):bit SQLallnotequal; if all values in r are not equal to l, return true, else if r has nil, return nil, else return false aggr anyequal -pattern aggr.anyequal(X_0:any_1, X_1:any_1):bit +pattern aggr.anyequal(X_0:any_1, X_1:any_1):bit CMDvarEQ; (empty) aggr anyequal -pattern aggr.anyequal(X_0:bat[:any_1], X_1:bat[:any_1]):bit +pattern aggr.anyequal(X_0:bat[:any_1], X_1:bat[:any_1]):bit SQLanyequal; if any value in r is equal to l, return true, else if r has nil, return nil, else return false aggr avg -command aggr.avg(X_0:bat[:bte], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] +command aggr.avg(X_0:bat[:bte], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] AGGRavg13_dbl; Grouped tail average on bte aggr avg -command aggr.avg(X_0:bat[:dbl], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] +command aggr.avg(X_0:bat[:dbl], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] AGGRavg13_dbl; Grouped tail average on dbl aggr avg -command aggr.avg(X_0:bat[:flt], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] +command aggr.avg(X_0:bat[:flt], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] AGGRavg13_dbl; Grouped tail average on flt aggr avg -command aggr.avg(X_0:bat[:hge], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] +command aggr.avg(X_0:bat[:hge], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] AGGRavg13_dbl; Grouped tail average on hge aggr avg -command aggr.avg(X_0:bat[:int], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] +command aggr.avg(X_0:bat[:int], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] AGGRavg13_dbl; Grouped tail average on int aggr avg -command aggr.avg(X_0:bat[:lng], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] +command aggr.avg(X_0:bat[:lng], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] AGGRavg13_dbl; Grouped tail average on lng aggr avg -command aggr.avg(X_0:bat[:sht], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] +command aggr.avg(X_0:bat[:sht], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl] AGGRavg13_dbl; Grouped tail average on sht aggr avg -command aggr.avg(X_0:bat[:bte], X_1:bat[:oid], X_2:bat[:any_1], X_3:int):bat[:dbl] +command aggr.avg(X_0:bat[:bte], X_1:bat[:oid], X_2:bat[:any_1], X_3:int):bat[:dbl] AGGRavg14_dbl; Grouped tail average on bte aggr avg -command aggr.avg(X_0:bat[:dbl], X_1:bat[:oid], X_2:bat[:any_1], X_3:int):bat[:dbl] +command aggr.avg(X_0:bat[:dbl], X_1:bat[:oid], X_2:bat[:any_1], X_3:int):bat[:dbl] AGGRavg14_dbl; Grouped tail average on dbl aggr avg -command aggr.avg(X_0:bat[:flt], X_1:bat[:oid], X_2:bat[:any_1], X_3:int):bat[:dbl] +command aggr.avg(X_0:bat[:flt], X_1:bat[:oid], X_2:bat[:any_1], X_3:int):bat[:dbl] AGGRavg14_dbl; Grouped tail average on flt aggr avg -command aggr.avg(X_0:bat[:int], X_1:bat[:oid], X_2:bat[:any_1], X_3:int):bat[:dbl] +command aggr.avg(X_0:bat[:int], X_1:bat[:oid], X_2:bat[:any_1], X_3:int):bat[:dbl] AGGRavg14_dbl; Grouped tail average on int aggr avg -command aggr.avg(X_0:bat[:lng], X_1:bat[:oid], X_2:bat[:any_1], X_3:int):bat[:dbl] +command aggr.avg(X_0:bat[:lng], X_1:bat[:oid], X_2:bat[:any_1], X_3:int):bat[:dbl] AGGRavg14_dbl; Grouped tail average on lng aggr avg -command aggr.avg(X_0:bat[:sht], X_1:bat[:oid], X_2:bat[:any_1], X_3:int):bat[:dbl] +command aggr.avg(X_0:bat[:sht], X_1:bat[:oid], X_2:bat[:any_1], X_3:int):bat[:dbl] AGGRavg14_dbl; Grouped tail average on sht aggr avg -command aggr.avg(X_0:bat[:bte], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) +command aggr.avg(X_0:bat[:bte], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) AGGRavg23_dbl; Grouped tail average on bte, also returns count aggr avg -command aggr.avg(X_0:bat[:dbl], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) +command aggr.avg(X_0:bat[:dbl], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) AGGRavg23_dbl; Grouped tail average on dbl, also returns count aggr avg -command aggr.avg(X_0:bat[:flt], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) +command aggr.avg(X_0:bat[:flt], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) AGGRavg23_dbl; Grouped tail average on flt, also returns count aggr avg -command aggr.avg(X_0:bat[:hge], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) +command aggr.avg(X_0:bat[:hge], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) AGGRavg23_dbl; Grouped tail average on hge, also returns count aggr avg -command aggr.avg(X_0:bat[:int], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) +command aggr.avg(X_0:bat[:int], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) AGGRavg23_dbl; Grouped tail average on int, also returns count aggr avg -command aggr.avg(X_0:bat[:lng], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) +command aggr.avg(X_0:bat[:lng], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) AGGRavg23_dbl; Grouped tail average on lng, also returns count aggr avg -command aggr.avg(X_0:bat[:sht], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) +command aggr.avg(X_0:bat[:sht], X_1:bat[:oid], X_2:bat[:any_1]) (X_3:bat[:dbl], X_4:bat[:lng]) AGGRavg23_dbl; Grouped tail average on sht, also returns count aggr avg -command aggr.avg(X_0:bat[:bte], X_1:bat[:oid], X_2:bat[:any_1], X_3:int) (X_4:bat[:dbl], X_5:bat[:lng]) +command aggr.avg(X_0:bat[:bte], X_1:bat[:oid], X_2:bat[:any_1], X_3:int) (X_4:bat[:dbl], X_5:bat[:lng]) AGGRavg24_dbl; Grouped tail average on bte, also returns count aggr avg -command aggr.avg(X_0:bat[:dbl], X_1:bat[:oid], X_2:bat[:any_1], X_3:int) (X_4:bat[:dbl], X_5:bat[:lng]) +command aggr.avg(X_0:bat[:dbl], X_1:bat[:oid], X_2:bat[:any_1], X_3:int) (X_4:bat[:dbl], X_5:bat[:lng]) AGGRavg24_dbl; Grouped tail average on dbl, also returns count aggr avg -command aggr.avg(X_0:bat[:flt], X_1:bat[:oid], X_2:bat[:any_1], X_3:int) (X_4:bat[:dbl], X_5:bat[:lng]) +command aggr.avg(X_0:bat[:flt], X_1:bat[:oid], X_2:bat[:any_1], X_3:int) (X_4:bat[:dbl], X_5:bat[:lng]) AGGRavg24_dbl; Grouped tail average on flt, also returns count aggr avg -command aggr.avg(X_0:bat[:int], X_1:bat[:oid], X_2:bat[:any_1], X_3:int) (X_4:bat[:dbl], X_5:bat[:lng]) +command aggr.avg(X_0:bat[:int], X_1:bat[:oid], X_2:bat[:any_1], X_3:int) (X_4:bat[:dbl], X_5:bat[:lng]) AGGRavg24_dbl; Grouped tail average on int, also returns count aggr avg -command aggr.avg(X_0:bat[:lng], X_1:bat[:oid], X_2:bat[:any_1], X_3:int) (X_4:bat[:dbl], X_5:bat[:lng]) +command aggr.avg(X_0:bat[:lng], X_1:bat[:oid], X_2:bat[:any_1], X_3:int) (X_4:bat[:dbl], X_5:bat[:lng]) AGGRavg24_dbl; Grouped tail average on lng, also returns count aggr avg -command aggr.avg(X_0:bat[:sht], X_1:bat[:oid], X_2:bat[:any_1], X_3:int) (X_4:bat[:dbl], X_5:bat[:lng]) +command aggr.avg(X_0:bat[:sht], X_1:bat[:oid], X_2:bat[:any_1], X_3:int) (X_4:bat[:dbl], X_5:bat[:lng]) AGGRavg24_dbl; Grouped tail average on sht, also returns count aggr avg -pattern aggr.avg(X_0:bat[:bte], X_1:bat[:oid], X_2:bit) (X_3:bte, X_4:lng, X_5:lng) +pattern aggr.avg(X_0:bat[:bte], X_1:bat[:oid], X_2:bit) (X_3:bte, X_4:lng, X_5:lng) CMDBATavg3; Calculate aggregate average of B. aggr avg -pattern aggr.avg(X_0:bat[:hge], X_1:bat[:oid], X_2:bit) (X_3:hge, X_4:lng, X_5:lng) +pattern aggr.avg(X_0:bat[:hge], X_1:bat[:oid], X_2:bit) (X_3:hge, X_4:lng, X_5:lng) CMDBATavg3; Calculate aggregate average of B. aggr avg -pattern aggr.avg(X_0:bat[:int], X_1:bat[:oid], X_2:bit) (X_3:int, X_4:lng, X_5:lng) +pattern aggr.avg(X_0:bat[:int], X_1:bat[:oid], X_2:bit) (X_3:int, X_4:lng, X_5:lng) CMDBATavg3; Calculate aggregate average of B. aggr avg -pattern aggr.avg(X_0:bat[:lng], X_1:bat[:oid], X_2:bit) (X_3:lng, X_4:lng, X_5:lng) +pattern aggr.avg(X_0:bat[:lng], X_1:bat[:oid], X_2:bit) (X_3:lng, X_4:lng, X_5:lng) CMDBATavg3; Calculate aggregate average of B. aggr avg -pattern aggr.avg(X_0:bat[:sht], X_1:bat[:oid], X_2:bit) (X_3:sht, X_4:lng, X_5:lng) +pattern aggr.avg(X_0:bat[:sht], X_1:bat[:oid], X_2:bit) (X_3:sht, X_4:lng, X_5:lng) CMDBATavg3; Calculate aggregate average of B. aggr _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org