Changeset: 27dba5f668f1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/27dba5f668f1
Removed Files:
        sql/backends/monet5/UDF/pyapi3/pyapi3.c
Modified Files:
        .github/workflows/linux.yml
        MonetDB.spec
        clients/Tests/MAL-signatures-hge.test
        clients/Tests/MAL-signatures.test
        clients/Tests/exports.stable.out
        clients/mapiclient/mhelp.c
        cmake/monetdb-defines.cmake
        cmake/monetdb-options.cmake
        debian/monetdb-server.install
        monetdb5/mal/mal_interpreter.c
        monetdb5/mal/mal_namespace.h
        monetdb5/optimizer/opt_mitosis.c
        monetdb5/optimizer/opt_pushselect.c
        monetdb5/optimizer/opt_support.c
        monetdb_config.h.in
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_statement.c
        sql/include/sql_catalog.h
        sql/server/rel_select.c
        sql/server/rel_updates.c
        sql/server/sql_parser.y
        sql/server/sql_scan.c
        sql/storage/store.c
        
sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.int128
        
sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb/Tests/dump.stable.out
        testing/CMakeLists.txt
        testing/Mtest.py.in
        tools/mserver/mserver5.c
Branch: pp_hashjoin
Log Message:

merged with default


diffs (truncated from 12932 to 300 lines):

diff --git a/.clang-format b/.clang-format
--- a/.clang-format
+++ b/.clang-format
@@ -91,7 +91,6 @@ StatementAttributeLikeMacros:
   - mvc_export
   - netcdf_export
   - orderidx_export
-  - pyapi_export
   - shp_export
   - sql5_export
   - sql_export
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -74,7 +74,6 @@ jobs:
           cd build 
           cmake ..  \
             -DCMAKE_INSTALL_PREFIX=$HOME/MDB \
-            -DPY3INTEGRATION=OFF \
             -DCMAKE_BUILD_TYPE=Release \
             -DASSERT=OFF \
             -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \
@@ -92,7 +91,6 @@ jobs:
           cd build 
           cmake .. \
             -DCMAKE_INSTALL_PREFIX=$HOME/MDB \
-            -DPY3INTEGRATION=OFF \
             -DCMAKE_BUILD_TYPE=Release \
             -DASSERT=OFF \
             -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \
@@ -107,7 +105,6 @@ jobs:
           cd build 
           cmake .. \
             -DCMAKE_INSTALL_PREFIX=$HOME/MDB \
-            -DPY3INTEGRATION=OFF \
             -DCMAKE_BUILD_TYPE=Release \
             -DASSERT=OFF \
             -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \
@@ -127,7 +124,7 @@ jobs:
         run: |
           mkdir build
           cd build 
-          cmake ..  -DCMAKE_INSTALL_PREFIX=C:\MDB 
-DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake 
-DPY3INTEGRATION=OFF  -DCMAKE_BUILD_TYPE=Release -DASSERT=OFF 
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }}  -DCMAKE_SUMMARY=ON
+          cmake ..  -DCMAKE_INSTALL_PREFIX=C:\MDB 
-DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake  
-DCMAKE_BUILD_TYPE=Release -DASSERT=OFF -DCMAKE_C_COMPILER=${{ 
matrix.c_compiler }}  -DCMAKE_SUMMARY=ON
           cmake --build . --target install
         if: runner.os == 'Windows'
 
diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,24 @@
 # ChangeLog file for devel
 # This file is updated with Maddlog
 
+* 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
+  anymore.  It is no longer possible to create LOADER functions, nor is
+  it possible to use them.  Upgrading to this version will succeed if
+  such functions exist.  Use this query to find all affected functions:
+  `SELECT s.name, f.name FROM sys.functions f JOIN sys.schemas s ON s.id
+  = f.schema_id WHERE f.type = 7;`.  These functions can then be dropped
+  manually using `DROP LOADER FUNCTION ...;`.
+
 * Fri Jun 19 2026 Sjoerd Mullender <[email protected]>
+- Removed embedded Python support.  It is no longer possible to use
+  user-defined functions which are written in Python (i.e. using `CREATE
+  FUNCTION ... LANGUAGE PYTHON ...`).  Upgrading to this version will
+  succeed if such functions are defined, but the cannot be used anymore.
+  Use this query to find all affected functions: `SELECT s.name, f.name
+  FROM sys.functions f JOIN sys.schemas s ON s.id = f.schema_id WHERE
+  f.language IN (6, 10);`.  These functions can then be dropped manually.
 - Removed embedded R support.  It is no longer possible to use
   user-defined functions which are written in R (i.e. using `CREATE
   FUNCTION ... LANGUAGE R ...`).  Upgrading to this version will succeed
@@ -9,14 +26,14 @@
   Use this query to find all affected functions: `SELECT s.name, f.name
   FROM sys.functions f JOIN sys.schemas s ON s.id = f.schema_id WHERE
   f.language = 3;`.  These functions can then be dropped manually.
-- Removed embedded C support.  It is no longer possible to use user-defined
-  functions which are written in C or C++ (i.e. using `CREATE FUNCTION
-  ... LANGUAGE C ...`).  Upgrading to this version will succeed if such
-  functions are defined, but they cannot be used anymore.  Use this
-  query to find all affected functions: `SELECT s.name, f.name FROM
-  sys.functions f JOIN sys.schemas s ON s.id = f.schema_id WHERE
-  f.language IN (4, 12);`.  These functions can then be dropped
-  manually.
+- Removed embedded C support.  It is no longer possible to use
+  user-defined functions which are written in C or C++ (i.e. using
+  `CREATE FUNCTION ... LANGUAGE C ...`).  Upgrading to this version will
+  succeed if such functions are defined, but they cannot be used
+  anymore.  Use this query to find all affected functions: `SELECT
+  s.name, f.name FROM sys.functions f JOIN sys.schemas s ON s.id =
+  f.schema_id WHERE f.language IN (4, 12);`.  These functions can then
+  be dropped manually.
 
 * Thu May  7 2026 Niels Nes <[email protected]>
 - disallow casting /coercing from decimal to integers when the functions
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -67,9 +67,6 @@
 # operators.  Otherwise the POSIX regex functions are used.
 %bcond_without pcre
 
-# By default, include Python 3 integration.
-%bcond_without py3integration
-
 %if %{fedpkgs}
 # By default, create the MonetDB-cfitsio package.
 %bcond_without fits
@@ -122,10 +119,6 @@ BuildRequires: pkgconfig(libpcre2-8)
 %endif
 BuildRequires: pkgconfig(zlib)
 BuildRequires: pkgconfig(liblz4) >= 1.8
-%if %{with py3integration}
-BuildRequires: pkgconfig(python3) >= 3.5
-BuildRequires: python3dist(numpy)
-%endif
 # optional packages:
 # BuildRequires: pkgconfig(cmocka)      # -DWITH_CMOCKA=ON
 # BuildRequires: pkgconfig(gdal)        # -DSHP=ON
@@ -473,31 +466,6 @@ extensions for %{name}-server.
 %{_libdir}/monetdb5*/lib_geom.so
 %endif
 
-%if %{with py3integration}
-%package python3
-Summary: Integration of MonetDB and Python, allowing use of Python from within 
SQL
-Group: Applications/Databases
-Requires: %{name}-server%{?_isa} = %{version}-%{release}
-Requires: python3-numpy
-
-%description python3
-MonetDB is a database management system that is developed from a
-main-memory perspective with use of a fully decomposed storage model,
-automatic index management, extensibility of data types and search
-accelerators.  It also has an SQL front end.
-
-This package contains the interface to use the Python language from
-within SQL queries.  This package is for Python 3.
-
-NOTE: INSTALLING THIS PACKAGE OPENS UP SECURITY ISSUES.  If you don't
-know how this package affects the security of your system, do not
-install it.
-
-%files python3
-%defattr(-,root,root)
-%{_libdir}/monetdb5*/lib_pyapi3.so
-%endif
-
 %if %{with fits}
 %package cfitsio
 Summary: MonetDB: Add on module that provides support for FITS files
@@ -919,7 +887,6 @@ fi
         -DINT128=%{?with_hugeint:ON}%{!?with_hugeint:OFF} \
         -DNETCDF=OFF \
         -DODBC=ON \
-        
-DPY3INTEGRATION=%{?with_py3integration:ON}%{!?with_py3integration:OFF} \
         -DSANITIZER=OFF \
         -DSHP=OFF \
         -DSTRICT=OFF \
diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py
--- a/NT/mksqlwxs.py
+++ b/NT/mksqlwxs.py
@@ -71,7 +71,6 @@ def main():
     extend = []
     debug = []
     geom = []
-    pyapi3 = []
     print(r'<?xml version="1.0"?>')
     print(r'<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>')
     print(r'  <Product Id="*" Language="1033" Manufacturer="MonetDB" 
Name="MonetDB" UpgradeCode="{}" Version="{}">'.format(upgradecode[arch], 
version))
@@ -109,11 +108,6 @@ def main():
     print(r'        <FileSearch Id="CheckFile4" Name="_geom.dll"/>')
     print(r'      </DirectorySearch>')
     print(r'    </Property>')
-    print(r'    <Property Id="PYAPI3EXISTS">')
-    print(r'      <DirectorySearch Id="CheckFileDir5" Path="[INSTALLDIR]" 
Depth="0">')
-    print(r'        <FileSearch Id="CheckFile5" 
Name="pyapi_locatepython3.bat"/>')
-    print(r'      </DirectorySearch>')
-    print(r'    </Property>')
     # up to and including 11.29.3, the geom module can not be
     # uninstalled if MonetDB/SQL is not installed; this somehow also
     # precludes the upgrade to this version, therefore we disallow
@@ -205,13 +199,11 @@ def main():
     print(r'            <Directory Id="lib" Name="lib">')
     print(r'              <Directory Id="monetdb5" Name="monetdb5">')
     id = comp(features, id, 16,
-              [rf'lib\monetdb5-{version}\{x}' for x in sorted(filter(lambda x: 
x.startswith('_') and x.endswith('.dll') and ('geom' not in x) and ('pyapi' not 
in x) and ('microbenchmark' not in x) and ('udf' not in x), 
os.listdir(os.path.join(sys.argv[3], 'lib', f'monetdb5-{version}'))))])
+              [rf'lib\monetdb5-{version}\{x}' for x in sorted(filter(lambda x: 
x.startswith('_') and x.endswith('.dll') and ('geom' not in x) and 
('microbenchmark' not in x) and ('udf' not in x), 
os.listdir(os.path.join(sys.argv[3], 'lib', f'monetdb5-{version}'))))])
     id = comp(debug, id, 16,
               [rf'lib\monetdb5-{version}\{x}' for x in sorted(filter(lambda x: 
x.startswith('_') and x.endswith('.pdb') and ('geom' not in x) and 
('microbenchmark' not in x) and ('udf' not in x), 
os.listdir(os.path.join(sys.argv[3], 'lib', f'monetdb5-{version}'))))])
     id = comp(geom, id, 16,
               [rf'lib\monetdb5-{version}\{x}' for x in sorted(filter(lambda x: 
x.startswith('_') and (x.endswith('.dll') or x.endswith('.pdb')) and ('geom' in 
x), os.listdir(os.path.join(sys.argv[3], 'lib', f'monetdb5-{version}'))))])
-    id = comp(pyapi3, id, 16,
-              [rf'lib\monetdb5-{version}\_pyapi3.dll'])
     print(r'              </Directory>')
     id = comp(extend, id, 14,
               [rf'lib\bat-{version}.lib',
@@ -249,8 +241,6 @@ def main():
               [r'share\license.rtf',
                r'M5server.bat',
                r'msqldump.bat'])
-    id = comp(pyapi3, id, 12,
-              [r'pyapi_locatepython3.bat'])
     id = comp(features, id, 12,
               [r'mclient.bat'],
               name = 'MonetDB SQL Client',
@@ -279,11 +269,6 @@ def main():
         print(r'        <ComponentRef Id="{}"/>'.format(f))
     print(r'        <MergeRef Id="VCRedist"/>')
     print(r'      </Feature>')
-    print(r'      <Feature Id="PyAPI3" Level="1000" AllowAdvertise="no" 
Absent="allow" Title="Include embedded Python 3" Description="Files required 
for using embedded Python 3.">')
-    for f in pyapi3:
-        print(r'        <ComponentRef Id="{}"/>'.format(f))
-    print(r'        <Condition Level="1">PYAPI3EXISTS</Condition>')
-    print(r'      </Feature>')
     print(r'      <Feature Id="Extend" Level="1000" AllowAdvertise="no" 
Absent="allow" Title="Extend MonetDB/SQL" Description="Files required for 
extending MonetDB (include files and .lib files).">')
     for f in extend:
         print(r'        <ComponentRef Id="{}"/>'.format(f))
diff --git a/README.rst b/README.rst
--- a/README.rst
+++ b/README.rst
@@ -72,7 +72,6 @@ GEOM                Enable support for g
 INT128              Enable support for 128-bit integers (if compiler supports 
them)
 NETCDF              Enable support for netcdf
 ODBC                Compile the MonetDB ODBC driver
-PY3INTEGRATION      Enable support for Python 3 integration into MonetDB
 SANITIZER           Enable support for the GCC address sanitizer (default=OFF)
 SHP                 Enable support for ESRI Shapefiles
 STRICT              Enable strict compiler flags (default=ON for development 
sources, OFF for tarball installation)
diff --git a/clients/Tests/All b/clients/Tests/All
--- a/clients/Tests/All
+++ b/clients/Tests/All
@@ -1,6 +1,6 @@
 MERCURIAL?exports
-HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP?MAL-signatures-hge
-!HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP?MAL-signatures
+HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_NETCDF&HAVE_SHP?MAL-signatures-hge
+!HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_NETCDF&HAVE_SHP?MAL-signatures
 NOT_WIN32?melcheck
 mclient-uri
 testcondvar
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
@@ -34318,36 +34318,6 @@ replace_first
 command batpcre.replace_first(X_0:bat[:str], X_1:str, X_2:str, 
X_3:str):bat[:str]
 PCREreplacefirst_bat_wrap
 (empty)
-batpyapi3
-eval
-unsafe pattern batpyapi3.eval(X_0:lng, X_1:ptr, X_2:str):bat[:any_1]
-PYAPI3PyAPIevalStd
-Execute a simple Python script value
-batpyapi3
-eval
-unsafe pattern batpyapi3.eval(X_0:ptr, X_1:str, X_2:any...):bat[:any]...
-PYAPI3PyAPIevalStd
-Execute a simple Python script value
-batpyapi3
-eval_aggr
-unsafe pattern batpyapi3.eval_aggr(X_0:ptr, X_1:str, X_2:any...):any...
-PYAPI3PyAPIevalAggr
-grouped aggregates through Python
-batpyapi3
-eval_loader
-unsafe pattern batpyapi3.eval_loader(X_0:ptr, X_1:str):any...
-PYAPI3PyAPIevalLoader
-loader functions through Python
-batpyapi3
-eval_loader
-unsafe pattern batpyapi3.eval_loader(X_0:ptr, X_1:str, X_2:any...):any...
-PYAPI3PyAPIevalLoader
-loader functions through Python
-batpyapi3
-subeval_aggr
-unsafe pattern batpyapi3.subeval_aggr(X_0:ptr, X_1:str, X_2:any...):any...
-PYAPI3PyAPIevalAggr
-grouped aggregates through Python
 batsql
 all
 pattern batsql.all(X_0:bat[:bit], X_1:bat[:bit], X_2:bat[:bit]):bat[:bit]
@@ -50113,46 +50083,6 @@ cpustats
 command profiler.cpustats() (X_0:lng, X_1:lng, X_2:lng, X_3:lng, X_4:lng)
 CMDcpustats
 Extract cpu statistics from the kernel
-pyapi3
-epilogue
-command pyapi3.epilogue():void
-PyAPI3epilogue
-(empty)
-pyapi3
-eval
-unsafe pattern pyapi3.eval(X_0:ptr, X_1:str):any_1
-PYAPI3PyAPIevalStd
-Execute a simple Python script returning a single value
-pyapi3
-eval
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to