ClickHouse / ClickHouse
Merged upstreamCorrectnessMerged Jul 2, 2026

Fix executable UDF command parameter validation

Fixed ClickHouse executable user-defined function parsing so placeholders with empty, blank, or invalid names are not accepted as command parameters.

ClickHouse/ClickHouse · #107983

Problem

The executable UDF loader used AND logic when filtering parameter placeholders, which allowed invalid names through whenever only one invalid condition was true. That made malformed placeholders appear as registered parameters instead of being ignored.

Approach

Changed the guard to reject placeholders when the name is empty or not an identifier, then added integration cases for names with spaces, empty names, and blank names.

Impact and scope

  • Restores strict executable UDF command parsing for user-visible function configuration behavior.
  • Prevents malformed placeholders from becoming callable parameters and producing misleading runtime behavior.
  • Landed as a user-visible bug fix in ClickHouse version 26.7.1.419.

Validation

  • Added executable UDF integration configuration covering invalid, empty, and blank parameter names.
  • Added query-level assertions that invalid placeholders produce the expected zero-parameter behavior.
  • PR was reviewed, merged upstream, and marked as resolved by the ClickHouse issue metadata.