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
Track the native support and test-infrastructure gaps identified by the SQL parity audit at main ebe550c69122909cd08fca8ee89380478a92cc5c, using released Apache Flink 2.2.1 as the oracle. Prioritize STRING/VARCHAR, DECIMAL, INT/BIGINT, TIMESTAMP and TIMESTAMP_LTZ; floating-point-only work is lower priority.
Evidence and scope
51 query records contain explicit planner fallback reasons. A query can have several blockers, so one completed feature does not necessarily unlock a whole query.
79 further zero-substitution records optimize to TableSourceScan alone after fixture/sink adaptation. They are not 79 missing compute operators and do not prove original connector IO or recovery contracts.
53 queries fail on the host before native comparison: 32 missing functions, 3 missing tables, 6 FIRST_VALUE signature differences, 4 temporal signatures, 2 implicit conversions, 2 streaming shape/mode restrictions, 2 error-producing inputs and 2 JSON RETURNING runtime exceptions.
One of the 51 planner-rejected records also has an unexpanded JSON-path test parameter. Track its intended variants through the harness ticket rather than counting it as complete path coverage.
SQL examples in the child tickets are shapes for minimized regressions, not claims that every example has independently been executed. Preserve full-query evidence and assert native substitutions in new tests.
The 25 work items below comprise 21 feature-support tickets and 4 test/investigation tickets. They do not create native semantics for SQL that the released host cannot execute.
P1: common strings, exact numerics and temporal types
Additional verified gap: Table API scalar projections retaining an AS wrapper fall back with Calc: unsupported function/operator: AS. Upstream constructor-state, inline and non-static object UDF fixtures each reproduce this on both backend variants. PR Audit native and fallback routes in unchanged upstream UDF tests #206 shipped exact route contracts and coverage documentation in b94064cc after all 26 checks passed; alias admission itself remains unimplemented. The same run proves native work for rich-function job parameters, multiple functions and code-generation splitting.
The implementations for #81, #93, #95, #97, #106, #107 and #123 shipped with the integrated stack in PR #150. The harness for #106/#107 uses a portable corpus derived from the public issues; the original independently produced September audit corpus was unavailable, so this is not a claim to have replayed it. The integrated tree passed all required CI and unchanged upstream suites before merging.
Completion criteria
Each child issue should link its implementation and parity evidence, identify actual native execution versus fallback, update the relevant documentation and close when its scoped work ships. The harness must account separately for host setup errors, expected exceptions, scan-only queries, explicit fallback and native result/changelog parity. Reassess remaining blockers after each implementation instead of assuming the original query counts are additive.
Objective
Track the native support and test-infrastructure gaps identified by the SQL parity audit at main
ebe550c69122909cd08fca8ee89380478a92cc5c, using released Apache Flink 2.2.1 as the oracle. Prioritize STRING/VARCHAR, DECIMAL, INT/BIGINT, TIMESTAMP and TIMESTAMP_LTZ; floating-point-only work is lower priority.Evidence and scope
The 25 work items below comprise 21 feature-support tickets and 4 test/investigation tickets. They do not create native semantics for SQL that the released host cannot execute.
P1: common strings, exact numerics and temporal types
P2: remaining expressions and collection/JSON support
P2: aggregates and relational plan shapes
P3: floating-point work
Test setup and investigations
Existing related work
Additional verified gap: Table API scalar projections retaining an
ASwrapper fall back withCalc: unsupported function/operator: AS. Upstream constructor-state, inline and non-static object UDF fixtures each reproduce this on both backend variants. PR Audit native and fallback routes in unchanged upstream UDF tests #206 shipped exact route contracts and coverage documentation inb94064ccafter all 26 checks passed; alias admission itself remains unimplemented. The same run proves native work for rich-function job parameters, multiple functions and code-generation splitting.Preserve pre-conversion nullness when consuming a DECIMAL scalar UDF result #115 is complete: DECIMAL scalar-UDF consumers preserve external nullness and values in fused Flink-generated evaluators inside native pipelines; lifecycle and exception parity shipped in PR Preserve Flink nullness and external values in DECIMAL UDF consumers #133 (0a9d784). Preserve shared mutable binary UDF results across multiple call sites #116 is complete: shared mutable binary results across call sites preserve complete-row Flink evaluation through the Arrow batch bridge (PR Preserve shared binary UDF results across complete Calc rows #162), including lifecycle, exception and changelog parity.
Native Calc dispatches user-defined functions by builtin name and silently runs the wrong function #82 and Native Calc opens a shared scalar UDF once per call site, corrupting lifecycle-dependent INT results #83 are shipped UDF identity/lifecycle fixes. Preserve surrogate identity in intermediate JSON STRING expressions #81 is complete: intermediate JSON STRING identity is preserved through fused scalar consumers, with explicit fallback at boundaries that cannot preserve it (PR Integrate SQL audit coverage and native retracting windows #150).
Track main correctness fixes for CAST initialization, day-time intervals, and FORCE join validation (PR #30) #84 is complete: the host cast warmup and forced delta-join guard are shipped, and interval parity is verified on the current temporal implementation.
Typed NULL projections produced by constant folding cause native Calc fallback #126 is complete: folded typed NULL expressions retain their declared Arrow type and compose with dynamic collection access.
Native CAST: support STRING/VARCHAR to integer and integer to STRING without JVM upcalls #124 is complete: integer/string CAST and TRY_CAST use native kernels without JVM callbacks, with released-Flink parity and release benchmarks. Support fully native FROM_UNIXTIME evaluation for constant format strings #123 is complete: verified constant numeric FROM_UNIXTIME formats use native evaluation, with the JVM bridge retained for other patterns and zones (PR Integrate SQL audit coverage and native retracting windows #150).
Report confirmed Flink JSON_VALUE RETURNING conversion failures upstream #109 is complete: five independent host-contract/native-control tests and documented audit classification now link upstream FLINK-40463 and Apache Flink PR #29063.
Native OVER: support COUNT(*) together with ROWS UNBOUNDED PRECEDING #105 is the focused COUNT(*)/unbounded-ROWS follow-up to Native OVER aggregation: support AVG, COUNT(*), and decimal value columns #8, which was closed as not planned. It does not claim that the entire older AVG/DECIMAL OVER backlog is complete.
The implementations for #81, #93, #95, #97, #106, #107 and #123 shipped with the integrated stack in PR #150. The harness for #106/#107 uses a portable corpus derived from the public issues; the original independently produced September audit corpus was unavailable, so this is not a claim to have replayed it. The integrated tree passed all required CI and unchanged upstream suites before merging.
Completion criteria
Each child issue should link its implementation and parity evidence, identify actual native execution versus fallback, update the relevant documentation and close when its scoped work ships. The harness must account separately for host setup errors, expected exceptions, scan-only queries, explicit fallback and native result/changelog parity. Reassess remaining blockers after each implementation instead of assuming the original query counts are additive.