Changeset: 8a2e7e59f2f7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8a2e7e59f2f7
Modified Files:
clients/Tests/MAL-signatures-hge.test
clients/Tests/MAL-signatures.test
clients/Tests/exports.stable.out
clients/mapiclient/dump.c
clients/odbc/tests/ODBCmetadata.c
cmake/monetdb-findpackages.cmake
gdk/gdk.h
gdk/gdk_aggr.c
gdk/gdk_atoms.c
gdk/gdk_atoms.h
gdk/gdk_bat.c
gdk/gdk_batop.c
gdk/gdk_bbp.c
gdk/gdk_calc.c
gdk/gdk_calc_compare.h
gdk/gdk_firstn.c
gdk/gdk_hash.c
gdk/gdk_heap.c
gdk/gdk_join.c
gdk/gdk_logger.c
gdk/gdk_private.h
gdk/gdk_qsort.c
gdk/gdk_search.c
gdk/gdk_select.c
gdk/gdk_unique.c
gdk/gdk_utils.c
monetdb5/mal/mal.c
monetdb5/mal/mal_embedded.c
monetdb5/mal/mel.h
monetdb5/modules/kernel/CMakeLists.txt
monetdb5/modules/mal/batExtensions.c
monetdb5/modules/mal/calc.c
monetdb5/modules/mal/inspect.c
monetdb5/modules/mal/manifold.c
monetdb5/modules/mal/tablet.c
monetdb5/modules/mal/tablet.h
monetdb5/modules/mal/txtsim.c
monetdb5/optimizer/opt_emptybind.c
monetdb5/optimizer/opt_mergetable.c
monetdb5/optimizer/opt_mitosis.c
monetdb5/optimizer/opt_support.c
sql/backends/monet5/CMakeLists.txt
sql/backends/monet5/bin_partition_by_slice.c
sql/backends/monet5/bin_partition_by_value.c
sql/backends/monet5/dict.c
sql/backends/monet5/rel_bin.c
sql/backends/monet5/rel_bin.h
sql/backends/monet5/rel_copy.c
sql/backends/monet5/rel_orderby.c
sql/backends/monet5/rel_physical.c
sql/backends/monet5/rel_pphash.c
sql/backends/monet5/rel_pptopn.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_cat.c
sql/backends/monet5/sql_execute.c
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_gencode.h
sql/backends/monet5/sql_pp_statement.c
sql/backends/monet5/sql_result.c
sql/backends/monet5/sql_result.h
sql/backends/monet5/sql_statement.c
sql/backends/monet5/sql_statement.h
sql/backends/monet5/sql_statistics.c
sql/backends/monet5/sql_upgrades.c
sql/backends/monet5/vaults/CMakeLists.txt
sql/backends/monet5/vaults/csv/csv.c
sql/backends/monet5/vaults/netcdf/netcdf.c
sql/backends/monet5/vaults/odbc/odbc_loader.c
sql/backends/monet5/vaults/parquet/parquet.c
sql/common/sql_types.c
sql/include/sql_catalog.h
sql/include/sql_relation.h
sql/jdbc/tests/Tests/JDBC_API_Tester.SQL.py
sql/rel.txt
sql/server/CMakeLists.txt
sql/server/rel_distribute.c
sql/server/rel_dump.c
sql/server/rel_exp.c
sql/server/rel_exp.h
sql/server/rel_file_loader.h
sql/server/rel_optimize_others.c
sql/server/rel_optimize_proj.c
sql/server/rel_optimize_sel.c
sql/server/rel_optimizer.c
sql/server/rel_optimizer_private.h
sql/server/rel_prop.c
sql/server/rel_prop.h
sql/server/rel_propagate.c
sql/server/rel_psm.c
sql/server/rel_rel.c
sql/server/rel_rel.h
sql/server/rel_rewriter.c
sql/server/rel_schema.c
sql/server/rel_select.c
sql/server/rel_semantic.c
sql/server/rel_statistics.c
sql/server/rel_unnest.c
sql/server/rel_updates.c
sql/server/sql_mvc.c
sql/server/sql_mvc.h
sql/server/sql_parser.y
sql/server/sql_partition.c
sql/server/sql_scan.c
sql/server/sql_symbol.c
sql/server/sql_symbol.h
sql/server/sql_tokens.h
sql/storage/bat/bat_logger.c
sql/storage/bat/bat_storage.c
sql/storage/bat/bat_table.c
sql/storage/sql_catalog.c
sql/storage/sql_storage.h
sql/storage/store.c
sql/test/BugDay_2005-10-06_2.9.3/Tests/CrashMe_SQL_server_crash-2.SF-921673.test
sql/test/BugTracker-2025/Tests/7614_join_reordering.test
sql/test/BugTracker-2025/Tests/7615_join_reordering_2.test
sql/test/BugTracker-2025/Tests/7616_join_reordering_3.test
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-0join-query.test
sql/test/SQLancer/Tests/sqlancer10.test
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/miscellaneous/Tests/groupby_prepare.test
sql/test/prepare/Tests/limit_in_prepare.Bug-2552.test
testing/sqllogictest.py
tools/monetdbe/monetdbe.c
tools/mserver/mserver5.c
Branch: nested
Log Message:
merged with default, aka with pipelines
diffs (truncated from 394345 to 300 lines):
diff --git a/.editorconfig b/.editorconfig
--- a/.editorconfig
+++ b/.editorconfig
@@ -27,3 +27,7 @@ trim_trailing_whitespace = true
[{clients/{mapilib,odbc},gdk}/**.{c,h}{,.in}]
tab_width = 8
max_line_length = 72
+
+[*.yml]
+indent_style = space
+indent_size = 2
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml
b/.github/ISSUE_TEMPLATE/bug_report.yml
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -74,6 +74,12 @@ body:
placeholder: e.g., FooBar Corp
validations:
required: true
+ - type: checkboxes
+ attributes:
+ label: Please indicate if any LLM tools were used in preparing this
report.
+ options:
+ - label: Yes, fully LLM generated
+ - label: Yes, LLM assisted
- type: markdown
attributes:
value: |
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -19,8 +19,8 @@ jobs:
strategy:
fail-fast: false # don't stop other jobs
matrix:
- os: [ ubuntu-latest, macos-latest, windows-latest ]
- c_compiler: [ gcc, clang, cl ]
+ os: [ ubuntu-latest, ubuntu-24.04-arm ]
+ c_compiler: [ gcc, clang ]
include:
- os: windows-latest
c_compiler: cl
@@ -28,21 +28,8 @@ jobs:
c_compiler: clang
- os: macos-latest
c_compiler: gcc-14
- - os: ubuntu-latest
- c_compiler: gcc
- - os: ubuntu-latest
- c_compiler: clang
- exclude:
- - os: windows-latest
- c_compiler: gcc
- - os: windows-latest
- c_compiler: clang
- - os: macos-latest
- c_compiler: cl
- - os: macos-latest
- c_compiler: gcc
- - os: ubuntu-latest
- c_compiler: cl
+ #- os: windows-11-arm
+ # c_compiler: cl
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
@@ -58,6 +45,9 @@ jobs:
run: pip3 install --user --break-system-packages --upgrade pymonetdb
cryptography
if: runner.os == 'macOS'
+ - name: install packages
+ run: sudo apt-get install -y bison libbz2-dev libpcre2-dev liblzma-dev
liblz4-dev libxml2-dev pkg-config libxxhash-dev unixodbc-dev zlib1g-dev
libssl-dev
+ if: runner.os == 'Linux'
- name: Patch /etc/hosts on Unix
run: echo '127.0.0.1 altlocalhost' | sudo tee -a /etc/hosts
@@ -82,7 +72,7 @@ jobs:
if: runner.os == 'Linux'
- name: brew packages
- run: brew install bison
+ run: brew install bison pkgconf xxhash
if: runner.os == 'macOS'
- name: make MonetDB on macos
@@ -116,7 +106,7 @@ jobs:
- name: choco packages
run: |
choco install winflexbison3
- vcpkg install libiconv bzip2 libxml2 pcre2 zlib getopt
+ vcpkg install libiconv bzip2 libxml2 pcre2 zlib getopt pkgconf xxhash
if: runner.os == 'Windows'
- name: make MonetDB on Windows
@@ -139,6 +129,11 @@ jobs:
PATH=$HOME/MDB/bin:$PATH $HOME/MDB/bin/Mtest.py -v -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: |
@@ -154,6 +149,13 @@ jobs:
python C:\MDB\bin\Mtest.py -v -r --debug=0 --ci --no-html
--TSTTRGBASE=.
if: runner.os == 'Windows'
+ - name: mtest-pipeline
+ 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 -v -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/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -49,6 +49,7 @@ cscope.*
*.rej
*.orig
compile_commands.json
+.cache
# package building on Mac OS X
MacOSX/build
diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog file for devel
# This file is updated with Maddlog
+* Mon Aug 3 2026 Sjoerd Mullender <[email protected]>
+- The hash function used for all internal hash tables has been changed
+ to xxhash which is therefore now a build requirement.
+
* Mon Jun 22 2026 Sjoerd Mullender <[email protected]>
- Removed support for LOADER FUNCTION. Since Python UDFs are not
supported anymore, the loader functions can also not be supported
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -119,6 +119,7 @@ BuildRequires: pkgconfig(libpcre2-8)
%endif
BuildRequires: pkgconfig(zlib)
BuildRequires: pkgconfig(liblz4) >= 1.8
+BuildRequires: pkgconfig(libxxhash)
# optional packages:
# BuildRequires: pkgconfig(cmocka) # -DWITH_CMOCKA=ON
# BuildRequires: pkgconfig(gdal) # -DSHP=ON
@@ -512,6 +513,7 @@ embedded library (%{name}-embedded).
%{_libdir}/libmonetdbsql*.so*
%dir %{_libdir}/monetdb5-%{version}
%{_libdir}/monetdb5*/lib_csv.so
+%{_libdir}/monetdb5*/lib_parquet.so
%{_libdir}/monetdb5*/lib_generator.so
%{_libdir}/monetdb5*/lib_monetdb_loader.so
diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py
--- a/NT/mksqlwxs.py
+++ b/NT/mksqlwxs.py
@@ -152,15 +152,15 @@ def main():
rf'bin\monetdbsql-{version}.dll',
rf'bin\stream-{version}.dll',
rf'bin\mutils-{version}.dll',
- vcpkg.format(r'bin\iconv-2.dll'),
vcpkg.format(r'bin\bz2.dll'),
vcpkg.format(r'bin\charset-1.dll'), # for iconv-2.dll
vcpkg.format(r'bin\getopt.dll'),
+ vcpkg.format(r'bin\iconv-2.dll'),
vcpkg.format(r'bin\libcrypto-3{}.dll'.format(libcrypto)),
+ vcpkg.format(r'bin\liblzma.dll'),
vcpkg.format(r'bin\libssl-3{}.dll'.format(libcrypto)),
vcpkg.format(r'bin\libxml2.dll'),
vcpkg.format(r'bin\lz4.dll'),
- vcpkg.format(r'bin\liblzma.dll'),
vcpkg.format(r'bin\pcre2-8.dll'),
vcpkg.format(r'bin\z.dll')])
id = comp(debug, id, 14,
@@ -213,10 +213,10 @@ def main():
rf'lib\monetdbsql-{version}.lib',
rf'lib\stream-{version}.lib',
rf'lib\mutils-{version}.lib',
- vcpkg.format(r'lib\iconv.lib'),
vcpkg.format(r'lib\bz2.lib'),
vcpkg.format(r'lib\charset.lib'),
vcpkg.format(r'lib\getopt.lib'),
+ vcpkg.format(r'lib\iconv.lib'),
vcpkg.format(r'lib\libxml2.lib'),
vcpkg.format(r'lib\lz4.lib'),
vcpkg.format(r'lib\lzma.lib'),
diff --git a/README.rst b/README.rst
--- a/README.rst
+++ b/README.rst
@@ -94,7 +94,8 @@ Required and Optional Packages
..............................
On Fedora, the following packages are required:
-``bison``, ``cmake``, ``gcc``, ``pkgconf``, ``python3``.
+``bison``, ``cmake``, ``gcc``, ``pkgconf``, ``python3``,
+``xxhash-devel``.
The following packages are optional but recommended:
``bzip2-devel``, ``lz4-devel``, ``openssl-devel``, ``pcre2-devel``,
@@ -107,11 +108,12 @@ The following packages are optional:
``valgrind-devel``.
On Ubuntu and Debian the following packages are required:
-``bison``, ``cmake``, ``gcc``, ``pkg-config``, ``python3``.
+``bison``, ``cmake``, ``gcc``, ``pkg-config``, ``python3``,
+``libxxash-dev``.
The following packages are optional but recommended:
-``libbz2-dev``, ``liblz4-dev``, ``libpcre2-dev``, ``libreadline-dev``,
-``liblzma-dev``, ``libssl-dev``, ``zlib1g-dev``.
+``libbz2-dev``, ``liblz4-dev``, ``liblzma-dev``, ``libpcre2-dev``,
+``libreadline-dev``, ``libssl-dev``, ``zlib1g-dev``.
The following packages are optional:
``libasan5``, ``libcfitsio-dev``, ``libcmocka-dev``,
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
@@ -3269,6 +3269,11 @@ pattern aggr.sum(X_0:bat[:sht], X_1:bit)
CMDBATsum
Calculate aggregate sum of B.
aggr
+uniques_guess
+command aggr.uniques_guess(X_0:bat[:any_1]):lng
+uniques_guess
+(empty)
+aggr
variance
command aggr.variance(X_0:bat[:bte], X_1:bat[:oid], X_2:bat[:any_1]):bat[:dbl]
AGGRvariance3_dbl
@@ -3384,11 +3389,6 @@ unsafe pattern alarm.sleep(X_0:any_1):an
ALARMsleep
Sleep a few milliseconds and return the slept value
alarm
-sleep
-unsafe pattern alarm.sleep(X_0:any_1):void
-ALARMsleep
-Sleep a few milliseconds
-alarm
time
unsafe command alarm.time():int
ALARMtime
@@ -3575,7 +3575,7 @@ ALGouterjoin1
Left outer join with candidate lists; only produce left output
algebra
outerselect
-command algebra.outerselect(X_0:bat[:oid], X_1:bat[:bit], X_2:bat[:bit],
X_3:bit) (X_4:bat[:oid], X_5:bat[:bit])
+command algebra.outerselect(X_0:bat[:oid], X_1:bat[:bit], X_2:bat[:bit],
X_3:bit, X_4:bit) (X_5:bat[:oid], X_6:bat[:bit])
ALGouterselect
Per input lid return at least one row, if none of the predicates (p) hold,
return a nil, else 'all' true cases.
algebra
@@ -3644,6 +3644,11 @@ command algebra.semijoin(X_0:bat[:any_1]
ALGsemijoin
Semi join with candidate lists
algebra
+single
+command algebra.single(X_0:bat[:oid], X_1:bat[:oid]):bat[:oid]
+ALGsingle
+Check for single result ids.
+algebra
slice
command algebra.slice(X_0:bat[:any_1], X_1:int, X_2:int):bat[:any_1]
ALGslice_int
@@ -3709,6 +3714,11 @@ command algebra.subslice(X_0:bat[:any_1]
ALGsubslice_lng
Return the oids of the slice with the BUNs at position x till y.
algebra
+subslice
+command algebra.subslice(X_0:bat[:any_1], X_1:lng, X_2:lng) (X_3:bat[:oid],
X_4:bat[:oid], X_5:bat[:oid])
+LALGsubslice
+Returns the slice of a pipelined result
+algebra
thetajoin
command algebra.thetajoin(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid],
X_3:bat[:oid], X_4:int, X_5:bit, X_6:lng) (X_7:bat[:oid], X_8:bat[:oid])
ALGthetajoin
@@ -3759,6 +3769,11 @@ command bat.append(X_0:bat[:any_1], X_1:
BKCappend_wrap
append the content of u to i
bat
+append
+unsafe pattern bat.append(X_0:bat[:any_1], X_1:lng, X_2:bat[:any_1], X_3:bit,
X_4:bat[:bte]):int
+PPappend
+Append bat at offset
+bat
appendBulk
pattern bat.appendBulk(X_0:bat[:any_1], X_1:bit, X_2:any_1...):bat[:any_1]
CMDBATappend_bulk
@@ -30870,16 +30885,6 @@ CMDconvertsignal_str
(empty)
batcalc
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]