Changeset: 7cbdf62e499b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/7cbdf62e499b
Modified Files:
clients/Tests/MAL-signatures-hge.test
clients/Tests/MAL-signatures.test
clients/Tests/exports.stable.out
clients/mapiclient/dump.c
monetdb5/optimizer/opt_mitosis.c
monetdb5/optimizer/opt_support.c
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_statement.c
sql/backends/monet5/sql_upgrades.c
sql/include/sql_catalog.h
sql/server/rel_psm.c
sql/server/rel_select.c
sql/server/rel_semantic.c
sql/server/rel_updates.c
sql/server/sql_parser.y
sql/server/sql_scan.c
sql/server/sql_tokens.h
sql/storage/store.c
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.int128
tools/mserver/mserver5.c
Branch: nested
Log Message:
merged with default
diffs (truncated from 12959 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
@@ -918,7 +886,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
@@ -34123,36 +34123,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]
@@ -49263,46 +49233,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]