Rechecked on 2026-09-20 against canonical main 89da01cdad7342c4d825e36eaf4e8dc73bc7af9f, released Apache Flink 2.2.1, JDK 17, default compatibility settings. Each expression was run against independent stock-Flink and StreamFusion-enabled streaming environments with bounded runtime DataStream input (parallelism 1), so source values cannot be folded away. Results and resolved result types agree through Flink fallback; this is a native support gap, not a demonstrated wrong-result bug.
The following scalar-result regular-expression functions still report Calc: unsupported function/operator: <name>. Evidence comes from adapted RegexpFunctionsITCase / ScalarFunctionsTest SQL and minimal runtime probes.
Runtime columns: s STRING='abc123abc', p STRING='abc', r STRING='X'. Execute each projection separately:
| SQL projection |
Flink result |
| REGEXP(s,p) |
TRUE |
| REGEXP_REPLACE(s,p,r) |
'X123X' |
| REGEXP_COUNT(s,p) |
2 |
| REGEXP_INSTR(s,p) |
1 |
| REGEXP_SUBSTR(s,p) |
'abc' |
Example: SELECT REGEXP_REPLACE(s,p,r) FROM src. Each returns the same result via fallback, with no native substitution.
Match released Flink's Java-regex semantics and supported overloads, including captures/replacement references, zero-width matches, Unicode, NULLs, invalid patterns and exception timing. A Rust regex engine is not automatically equivalent. Add projection and filter consumers and batch-boundary tests.
Array-returning REGEXP_EXTRACT_ALL should be scheduled after these scalar STRING/INT/BOOLEAN forms.
Suggested priority: P2, after basic numeric and string predicate support.
Acceptance: add runtime-source SQL parity tests that assert native Calc execution as well as values and resolved types; include NULLs and boundary/error cases; retain safe fallback for unverified forms and update docs/operators/calc-filter.md with the admitted scope.
Latest-main validation: rebuilt the debug native library from this commit and ran 562 targeted runtime SQL cases covering these support gaps and adjacent controls. This issue group contains 39 successful comparisons that still record explicit fallback. Host-rejected/both-error cases are excluded from that count. This validates released Flink 2.2.1; it does not claim execution of the Flink 1.18 profile. No implementation is included.
Rechecked on 2026-09-20 against canonical main
89da01cdad7342c4d825e36eaf4e8dc73bc7af9f, released Apache Flink 2.2.1, JDK 17, default compatibility settings. Each expression was run against independent stock-Flink and StreamFusion-enabled streaming environments with bounded runtime DataStream input (parallelism 1), so source values cannot be folded away. Results and resolved result types agree through Flink fallback; this is a native support gap, not a demonstrated wrong-result bug.The following scalar-result regular-expression functions still report
Calc: unsupported function/operator: <name>. Evidence comes from adaptedRegexpFunctionsITCase/ScalarFunctionsTestSQL and minimal runtime probes.Runtime columns:
s STRING='abc123abc', p STRING='abc', r STRING='X'. Execute each projection separately:Example:
SELECT REGEXP_REPLACE(s,p,r) FROM src. Each returns the same result via fallback, with no native substitution.Match released Flink's Java-regex semantics and supported overloads, including captures/replacement references, zero-width matches, Unicode, NULLs, invalid patterns and exception timing. A Rust regex engine is not automatically equivalent. Add projection and filter consumers and batch-boundary tests.
Array-returning REGEXP_EXTRACT_ALL should be scheduled after these scalar STRING/INT/BOOLEAN forms.
Suggested priority: P2, after basic numeric and string predicate support.
Acceptance: add runtime-source SQL parity tests that assert native Calc execution as well as values and resolved types; include NULLs and boundary/error cases; retain safe fallback for unverified forms and update
docs/operators/calc-filter.mdwith the admitted scope.Latest-main validation: rebuilt the debug native library from this commit and ran 562 targeted runtime SQL cases covering these support gaps and adjacent controls. This issue group contains 39 successful comparisons that still record explicit fallback. Host-rejected/both-error cases are excluded from that count. This validates released Flink 2.2.1; it does not claim execution of the Flink 1.18 profile. No implementation is included.