Files
Alexey MilovidovandClaude Opus 4.8 88faa00fc6 Address review feedback for executable UDF drivers
Implements several reviewer-requested changes for driver-based executable
user-defined functions:

- Gate the feature behind a new experimental server setting
  `allow_experimental_executable_udf_drivers` (disabled by default, mirroring
  `allow_experimental_webassembly_udf`). When disabled, no drivers are loaded
  into the registry and `CREATE FUNCTION ... ENGINE = DriverName(...)` throws
  `SUPPORT_IS_DISABLED`.
- Reject driver-based `CREATE FUNCTION` when the user-defined SQL object storage
  is replicated: driver artifacts (dynamic config and working directory) are
  materialized only on the receiving replica, so the function would be
  unavailable on the others and after `RESTORE`.
- Require `AS '...code...'` for driver-based `CREATE FUNCTION` in the parser, so
  an accidental omission of `AS` becomes a syntax error instead of a
  side-effectful create with an empty body.
- Honor `IF NOT EXISTS` in the executable-UDF existence check
  (`UserDefinedExecutableFunctionFactory::has`) instead of throwing
  `FUNCTION_ALREADY_EXISTS` unconditionally.
- Clear the driver registry when the driver config resolves to no files (or the
  feature is disabled) on `SYSTEM RELOAD CONFIG`, so removed drivers stop being
  usable immediately instead of lingering until restart.
- Add `ASTCreateFunctionWithDriverQuery` to `isUserDefinedFunctionQuery` in
  `removeOnClusterClauseIfNeeded` so the new create path honors
  `ignore_on_cluster_for_replicated_udf_queries`.
- Add `--security-opt=no-new-privileges` to the `c_function_body` driver's
  compile and runtime `docker run` sandboxes.
- Enable `allow_experimental_executable_udf_drivers` in the stateless test
  configs for `04241_executable_udf_driver` and `04242_executable_udf_driver_errors`.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-04 22:45:47 +00:00
..