Changeset: e824a70ebe3c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e824a70ebe3c Removed Files: sql/backends/monet5/UDF/capi/CMakeLists.txt sql/backends/monet5/UDF/capi/Tests/7285-cudf-grouped-aggr.test sql/backends/monet5/UDF/capi/Tests/7525-cudf-aggr-var-input.test sql/backends/monet5/UDF/capi/Tests/All sql/backends/monet5/UDF/capi/Tests/SingleServer sql/backends/monet5/UDF/capi/Tests/capi00.test sql/backends/monet5/UDF/capi/Tests/capi01.test sql/backends/monet5/UDF/capi/Tests/capi02.test sql/backends/monet5/UDF/capi/Tests/capi03.test sql/backends/monet5/UDF/capi/Tests/capi04.test sql/backends/monet5/UDF/capi/Tests/capi05.test sql/backends/monet5/UDF/capi/Tests/capi06.test sql/backends/monet5/UDF/capi/Tests/capi07.test sql/backends/monet5/UDF/capi/Tests/capi08.test sql/backends/monet5/UDF/capi/Tests/capi09.test sql/backends/monet5/UDF/capi/Tests/capi10.test sql/backends/monet5/UDF/capi/Tests/capi11.test sql/backends/monet5/UDF/capi/Tests/capi13.test sql/backends/monet5/UDF/capi/Tests/capi14.test sql/backends/monet5/UDF/capi/Tests/capi15.test sql/backends/monet5/UDF/capi/Tests/capi16.test sql/backends/monet5/UDF/capi/Tests/capi17.test sql/backends/monet5/UDF/capi/Tests/capi18.test sql/backends/monet5/UDF/capi/capi.c sql/backends/monet5/UDF/capi/cheader.h sql/backends/monet5/UDF/capi/cheader.text.h Modified Files: ChangeLog MonetDB.spec clients/Tests/All clients/Tests/MAL-signatures-hge.test clients/Tests/SingleServer clients/Tests/exports.stable.out clients/mapiclient/dump.c cmake/monetdb-defines.cmake ctest/cmake/set-cmake-vars.cmake debian/monetdb-server.install monetdb5/mal/mal_linker.c monetdb5/mal/mal_namespace.h monetdb5/optimizer/opt_mitosis.c monetdb5/optimizer/opt_support.c monetdb_config.h.in sql/backends/monet5/UDF/CMakeLists.txt sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_upgrades.c sql/include/sql_catalog.h sql/scripts/10_sys_schema_extension.sql sql/server/rel_psm.c sql/server/sql_parser.y sql/test/BugTracker-2020/Tests/functions-not-persist.Bug-6819.py sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128 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.int128 sql/test/testdb-previous-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain-hge/Tests/upgrade.py sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain/Tests/upgrade.py sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128 sql/test/testdb/Tests/All sql/test/testdb/Tests/dump-nogeom.stable.out sql/test/testdb/Tests/dump.stable.out sql/test/testdb/Tests/load.test testing/CMakeLists.txt testing/Mtest.py.in tools/merovingian/daemon/forkmserver.c tools/merovingian/daemon/merovingian.c tools/merovingian/utils/properties.c tools/mserver/mserver5.1.in tools/mserver/mserver5.c Branch: default Log Message:
Removed embedded C support. diffs (truncated from 4628 to 300 lines): diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog file for devel # This file is updated with Maddlog +* Fri Jun 19 2026 Sjoerd Mullender <[email protected]> +- 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 work on bits (like xor, and, or, <<, >> etc) 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 C integration -%bcond_without cintegration - %if %{fedpkgs} # By default, create the MonetDB-R package. %bcond_without rintegration @@ -579,9 +576,6 @@ embedded library (%{name}-embedded). %{_libdir}/libmonetdb5*.so.* %{_libdir}/libmonetdbsql*.so* %dir %{_libdir}/monetdb5-%{version} -%if %{with cintegration} -%{_libdir}/monetdb5*/lib_capi.so -%endif %{_libdir}/monetdb5*/lib_csv.so %{_libdir}/monetdb5*/lib_generator.so %{_libdir}/monetdb5*/lib_monetdb_loader.so @@ -952,7 +946,6 @@ fi -DCMAKE_INSTALL_RUNSTATEDIR=/run \ -DRELEASE_VERSION=ON \ -DASSERT=OFF \ - -DCINTEGRATION=%{?with_cintegration:ON}%{!?with_cintegration:OFF} \ -DFITS=%{?with_fits:ON}%{!?with_fits:OFF} \ -DGEOM=%{?with_geos:ON}%{!?with_geos:OFF} \ -DINT128=%{?with_hugeint:ON}%{!?with_hugeint:OFF} \ 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_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&HAVE_CUDF?MAL-signatures-hge -!HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&HAVE_CUDF?MAL-signatures +HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP?MAL-signatures-hge +!HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&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 @@ -31273,11 +31273,6 @@ xor pattern batcalc.xor(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht] CMDbatXOR Return V xor B -batcapi -eval -pattern batcapi.eval(X_0:ptr, X_1:bit, X_2:str, X_3:any...):any... -CUDFevalStd -Execute a simple CUDF script value batgeom AsEWKT command batgeom.AsEWKT(X_0:bat[:wkb]):bat[:str] @@ -45283,26 +45278,6 @@ xor pattern calc.xor(X_0:sht, X_1:sht):sht CMDvarXOR Return V1 XOR V2 -capi -eval -pattern capi.eval(X_0:ptr, X_1:bit, X_2:str):any -CUDFevalStd -Execute a simple CUDF script returning a single value -capi -eval -pattern capi.eval(X_0:ptr, X_1:bit, X_2:str, X_3:any...):any... -CUDFevalStd -Execute a simple CUDF script value -capi -eval_aggr -pattern capi.eval_aggr(X_0:ptr, X_1:bit, X_2:str, X_3:any...):any... -CUDFevalAggr -grouped aggregates through CUDF -capi -subeval_aggr -pattern capi.subeval_aggr(X_0:ptr, X_1:bit, X_2:str, X_3:any...):any... -CUDFevalAggr -grouped aggregates through CUDF clients backendsum command clients.backendsum(X_0:str):str diff --git a/clients/Tests/SingleServer b/clients/Tests/SingleServer --- a/clients/Tests/SingleServer +++ b/clients/Tests/SingleServer @@ -1,3 +1,2 @@ ---set embedded_c=yes --set embedded_r=yes --set embedded_py=3 diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -846,7 +846,6 @@ void batBeforeCall(ValPtr v, ValPtr bak) const char batRef[]; const char batalgebraRef[]; const char batcalcRef[]; -const char batcapiRef[]; const char batmalRef[]; const char batmkeyRef[]; const char batmmathRef[]; @@ -865,7 +864,6 @@ const char blockRef[]; const char bstreamRef[]; const char calcRef[]; str callMAL(Client cntxt, MalBlkPtr mb, MalStkPtr *glb, ValPtr argv[]); -const char capiRef[]; str cfcnDefinition(Symbol s, str base, size_t len); str chkDeclarations(MalBlkPtr mb); str chkFlow(MalBlkPtr mb); diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c --- a/clients/mapiclient/dump.c +++ b/clients/mapiclient/dump.c @@ -2443,6 +2443,19 @@ dump_function(Mapi mid, stream *sqlf, co if (flkey) { mnstr_printf(sqlf, " LANGUAGE %s", flkey); free(flkey); + } else { + /* backward compatibility: dump language types for removed + * implementations */ + switch (flang) { + case 4: + mnstr_printf(sqlf, " LANGUAGE C"); + break; + case 12: + mnstr_printf(sqlf, " LANGUAGE CPP"); + break; + default: + break; + } } mnstr_printf(sqlf, "\n%s\n", ffunc); } diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake --- a/cmake/monetdb-defines.cmake +++ b/cmake/monetdb-defines.cmake @@ -198,11 +198,6 @@ macro(monetdb_macro_variables) if(WIN_GETADDRINFO) set(HAVE_GETADDRINFO 1) endif() - set(HAVE_CUDF - ${CINTEGRATION} - CACHE - INTERNAL - "C udfs extension is available") # compiler options, profiling (google perf tools), valgrind # Check that posix regex is available when pcre is not found # "monetdb5/module/mal/pcre.c" assumes the regex library is available diff --git a/ctest/cmake/set-cmake-vars.cmake b/ctest/cmake/set-cmake-vars.cmake --- a/ctest/cmake/set-cmake-vars.cmake +++ b/ctest/cmake/set-cmake-vars.cmake @@ -11,8 +11,6 @@ # Test for the existence of these cmake variables, the source code assumes # that they are set by the buildsystem. -assert_variable_exists(HAVE_CUDF) - if(HAVE_LIBR) assert_variable_exists(RHOME) endif() diff --git a/debian/monetdb-server.install b/debian/monetdb-server.install --- a/debian/monetdb-server.install +++ b/debian/monetdb-server.install @@ -3,7 +3,6 @@ debian/tmp/usr/lib/x86_64-linux-gnu/libm debian/tmp/usr/lib/x86_64-linux-gnu/libmonetdbsql*.so* usr/lib/x86_64-linux-gnu # usr/lib/x86_64-linux-gnu/monetdb5*/lib_*.so EXCEPT: lib_{fits,geom,gsl,microbenchmark,pyapi*,rapi,sql,udf}.so -debian/tmp/usr/lib/x86_64-linux-gnu/monetdb5*/lib_capi.so usr/lib/x86_64-linux-gnu/monetdb5 debian/tmp/usr/lib/x86_64-linux-gnu/monetdb5*/lib_csv.so usr/lib/x86_64-linux-gnu/monetdb5 debian/tmp/usr/lib/x86_64-linux-gnu/monetdb5*/lib_generator.so usr/lib/x86_64-linux-gnu/monetdb5 debian/tmp/usr/lib/x86_64-linux-gnu/monetdb5*/lib_monetdb_loader.so usr/lib/x86_64-linux-gnu/monetdb5 diff --git a/monetdb5/mal/mal_linker.c b/monetdb5/mal/mal_linker.c --- a/monetdb5/mal/mal_linker.c +++ b/monetdb5/mal/mal_linker.c @@ -287,9 +287,6 @@ loadLibrary(const char *filename, int fl if (handle == NULL) { static const char *const optional[] = { -#ifdef HAVE_CUDF - "capi", -#endif #ifdef HAVE_FITS "fits", #endif @@ -459,10 +456,6 @@ malLibraryEnabled(const char *name) const char *val = GDKgetenv("embedded_r"); return val && (strcasecmp(val, "true") == 0 || strcasecmp(val, "yes") == 0); - } else if (strcmp(name, "capi") == 0) { - const char *val = GDKgetenv("embedded_c"); - return val && (strcasecmp(val, "true") == 0 || - strcasecmp(val, "yes") == 0); } return true; } @@ -484,8 +477,6 @@ malLibraryHowToEnable(const char *name) HOW_TO_ENABLE_ERROR("Python 3", "embedded_py=3"); } else if (strcmp(name, "rapi") == 0) { HOW_TO_ENABLE_ERROR("R", "embedded_r=true"); - } else if (strcmp(name, "capi") == 0) { - HOW_TO_ENABLE_ERROR("C/C++", "embedded_c=true"); } return ""; } diff --git a/monetdb5/mal/mal_namespace.h b/monetdb5/mal/mal_namespace.h --- a/monetdb5/mal/mal_namespace.h +++ b/monetdb5/mal/mal_namespace.h @@ -33,7 +33,6 @@ FUNC(bat); \ FUNC(batalgebra); \ FUNC(batcalc); \ - FUNC(batcapi); \ FUNC(batmal); \ FUNC(batmkey); \ FUNC(batmmath); \ @@ -50,7 +49,6 @@ FUNC(block); \ FUNC(bstream); \ FUNC(calc); \ - FUNC(capi); \ FUNC(claim); \ FUNC(clear_table); \ FUNC(columnBind); \ diff --git a/monetdb5/optimizer/opt_mitosis.c b/monetdb5/optimizer/opt_mitosis.c --- a/monetdb5/optimizer/opt_mitosis.c +++ b/monetdb5/optimizer/opt_mitosis.c @@ -100,8 +100,7 @@ OPTmitosisImplementation(Client cntxt, M } if (p->argc > 2 - && (getModuleId(p) == capiRef || getModuleId(p) == rapiRef - || getModuleId(p) == pyapi3Ref) + && (getModuleId(p) == rapiRef || getModuleId(p) == pyapi3Ref) && getFunctionId(p) == subeval_aggrRef) { pieces = 0; goto bailout; diff --git a/monetdb5/optimizer/opt_support.c b/monetdb5/optimizer/opt_support.c --- a/monetdb5/optimizer/opt_support.c +++ b/monetdb5/optimizer/opt_support.c @@ -286,8 +286,7 @@ hasSideEffects(MalBlkPtr mb, InstrPtr p, return TRUE; if( getModuleId(p) == pyapi3Ref || - getModuleId(p) == rapiRef || - getModuleId(p) == capiRef) + getModuleId(p) == rapiRef) return TRUE; if (getModuleId(p) == sqlcatalogRef) @@ -436,8 +435,7 @@ isMapOp(InstrPtr p) || (getModuleId(p) != batcalcRef && getModuleId(p) != batRef && strncmp(getModuleId(p), "bat", 3) == 0) || (getModuleId(p) == batmkeyRef)) && !isOrderDepenent(p) - && getModuleId(p) != batrapiRef && getModuleId(p) != batpyapi3Ref - && getModuleId(p) != batcapiRef; + && getModuleId(p) != batrapiRef && getModuleId(p) != batpyapi3Ref; } inline int @@ -452,8 +450,7 @@ isMap2Op(InstrPtr p) || (getModuleId(p) != batcalcRef && getModuleId(p) != batRef && strncmp(getModuleId(p), "bat", 3) == 0) || (getModuleId(p) == batmkeyRef)) && !isOrderDepenent(p) - && getModuleId(p) != batrapiRef && getModuleId(p) != batpyapi3Ref - && getModuleId(p) != batcapiRef; + && getModuleId(p) != batrapiRef && getModuleId(p) != batpyapi3Ref; } inline int diff --git a/monetdb_config.h.in b/monetdb_config.h.in --- a/monetdb_config.h.in +++ b/monetdb_config.h.in @@ -183,7 +183,6 @@ // optional code: libraries that may or may not be available, // optional extensions -#cmakedefine HAVE_CUDF 1 #cmakedefine HAVE_CURL 1 #cmakedefine HAVE_FITS 1 _______________________________________________ checkin-list mailing list -- [email protected] To unsubscribe send an email to [email protected]
