You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Native collection-returning STRING functions: support REGEXP_EXTRACT_ALL and STR_TO_MAP #219
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.
These STRING functions return complex types and remain unsupported. Track them after scalar-result regex/string work.
Runtime s STRING='abc123abc':
SELECT REGEXP_EXTRACT_ALL(s, '(abc)', 1) FROM src;
Released Flink returns ARRAY ['abc','abc']; the enabled native planner falls back with Calc: unsupported function/operator: REGEXP_EXTRACT_ALL. Adapted RegexpFunctionsITCase and a minimal runtime probe agree.
Runtime s STRING='test1=1,test2=2,test3=3':
SELECT STR_TO_MAP(s) FROM src;
Released Flink returns MAP<STRING,STRING> {test1:1,test2:2,test3:3}; the enabled native planner falls back with Calc: unsupported function/operator: STR_TO_MAP. A runtime NULL source also returns NULL through fallback. Evidence comes from adapted ScalarFunctionsTest SQL.
Both families record zero native substitutions. Preserve Flink regex capture semantics, no-match/NULL distinctions, map delimiters, missing values and duplicate-key behavior. Test downstream indexing, NULL elements/containers and complete Arrow result types.
Suggested priority: P3, complex output types after scalar STRING/INT/DECIMAL/TIMESTAMP coverage.
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 19 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.
Activity
Keep collection string functions inside the Flink batch evaluator