The GitHub Actions job "Flink CI (beta)" on flink.git/master has failed.
Run started by GitHub user fhueske (triggered by fhueske).

Head commit for run:
a5a7925415bdf6f257b100cc27e9aeb19d096d04 / Ramin Gharib <[email protected]>
[FLINK-39651][table] REGEXP plan-time validation and hot-path log cleanup 
(#28292)

* [FLINK-39651][table] Drop hot-path error log in REGEXP

SqlFunctionUtils.regExp caught any exception from pattern compilation with 
LOG.error, producing one stack trace per record processed when an invalid regex 
was supplied (for example a column-referenced or function-built pattern that 
fails to compile).

The pattern is already looked up through REGEXP_PATTERN_CACHE, so the only 
hot-path cost left was the logging. PatternSyntaxException is now caught 
silently and returns false, preserving the prior runtime contract without 
flooding the log. Other exception types are no longer swallowed.

Adds runtime IT cases for REGEXP in RegexpFunctionsITCase covering literal 
valid/no-match, null input, column-ref invalid, and function-call regex paths.

* [FLINK-39651][table] Route REGEXP through BridgingSqlFunction

Migrates REGEXP to the modern BuiltInFunctionDefinition stack while keeping the 
existing StringCallGen codegen path.

The function definition is renamed to name("REGEXP") and marked 
runtimeProvided() so it is exposed to both SQL and Table API conversion through 
CoreModule. A new arm in ExprCodeGenerator's BridgingSqlFunction block routes 
the call to StringCallGen.generateRegExp. The legacy 
FlinkSqlOperatorTable.REGEXP entry, the DirectConvertRule mapping, and the case 
REGEXP arm in StringCallGen are removed.

Behavior is preserved: same arg types, same codegen call, same runtime helper. 
Only the registration path changes. The Table API and Python string 
representation now renders as REGEXP(...) to match the function name.

* [FLINK-39651][table] Validate REGEXP literal patterns at plan time

Adds RegexpInputTypeStrategy which validates the two STRING arguments and 
delegates the literal-pattern check to the shared 
StrategyUtils.validateLiteralPattern helper introduced for the regex function 
family. Literal regex arguments are eagerly compiled during type inference and 
surface failures as ValidationException; non-literal or null-literal arguments 
are deferred to runtime.

REGEXP is wired through the new strategy via SpecificInputTypeStrategies.REGEXP.

Tests: new RegexpInputTypeStrategyTest covers the four branches (non-literal 
defers, valid literal compiles, null literal is deferred, invalid literal 
fails). RegexpFunctionsITCase gains a plan-time validation TestSetSpec covering 
both Table API and SQL paths.

Report URL: https://github.com/apache/flink/actions/runs/26829341846

With regards,
GitHub Actions via GitBox

Reply via email to