mirror of
https://github.com/hanzoai/datastore.git
synced 2026-09-26 13:55:07 +00:00
Change the generated `DockerC` runtime command from `docker exec -i` to a per-function runner script that creates FIFO files inside the UDF work directory. The script starts `/work/user_func` in the persistent Docker container with its `stdin` and `stdout` redirected to those FIFOs, and then relays ClickHouse input and output through host-side `cat` processes. This keeps the hot data path out of Docker's `exec -i` attach stream while leaving all temporary files inside the UDF work directory. Also stop requesting `command_pipe_capacity` by default from generated C-body driver configs, so this experiment is not mixed with the previous pipe-capacity tuning. PR: https://github.com/ClickHouse/ClickHouse/pull/105131 Tests: - `python3 -m py_compile programs/server/user_defined_executable_function_drivers/c_driver_common.py` - `CLICKHOUSE_C_DRIVER_COMPILE_LOCAL=1 CLICKHOUSE_C_DRIVER_SKIP_DOCKER_CONTAINER=1 docker_c_create.sh --return UInt64 --args 'x UInt64, y UInt64'` - `sh -n tmp/pr105131_docker_fifo/create/docker_fifo_runner.sh` - `CLICKHOUSE_BINARY=./build/programs/clickhouse tests/queries/0_stateless/04241_executable_udf_driver.sh` - `CLICKHOUSE_BINARY=./build/programs/clickhouse tests/queries/0_stateless/04242_executable_udf_driver_errors.sh`