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]

Reply via email to