Verified on PR #220 after rebasing onto merged #222: commit 16ebb1e5a45cc5420abf90473b785d6c0b908a82, released Apache Flink 2.2.1, JDK 17, default compatibility settings. Each probe uses independent stock-Flink and native-enabled environments with bounded runtime DataStream input. Successful comparisons check output values and resolved result types before classifying execution.
Suggested priority: P2. This is a verified native support gap; the successful probes return equal results through explicit Flink fallback.
BOOLEAN IF is covered by #210 and PR #220. Local-zoned timestamp result branches remain rejected, while equivalent CASE, IFNULL and COALESCE controls execute natively. TRUE, FALSE and NULL conditions were checked under UTC, Asia/Shanghai and America/Los_Angeles.
Runtime probe
Input type:
ROW<`f0` BOOLEAN, `f1` TIMESTAMP_LTZ(9), `f2` TIMESTAMP_LTZ(9)> NOT NULL
Input: [+I[true, 1969-12-31T23:59:59.999999999Z, 2024-03-10T10:00:00Z]]
SELECT IF(f0,f1,f2) FROM src;
Flink result: [[1969-12-31T23:59:59.999999999Z]]; resolved type: [TIMESTAMP_LTZ(9)]. Native substitutions: 0.
Calc: IF requires a verified scalar result type
Cover TIMESTAMP_LTZ precisions 0/3/6/9, pre-epoch fractional instants, DST boundaries, nullable branches, selected/unselected failures and empty filtered batches. This is separate from BOOLEAN IF admission in #210.
Acceptance
Preserve released Flink values, resolved types, NULL behavior and relevant error/short-circuit semantics. Add runtime-source SQL regressions that assert the specific native operator as well as result parity; do not use constant folding as proof of native support. Keep safe fallback for unverified forms and update the corresponding operator coverage documentation.
Verified on PR #220 after rebasing onto merged #222: commit
16ebb1e5a45cc5420abf90473b785d6c0b908a82, released Apache Flink 2.2.1, JDK 17, default compatibility settings. Each probe uses independent stock-Flink and native-enabled environments with bounded runtime DataStream input. Successful comparisons check output values and resolved result types before classifying execution.Suggested priority: P2. This is a verified native support gap; the successful probes return equal results through explicit Flink fallback.
BOOLEAN IF is covered by #210 and PR #220. Local-zoned timestamp result branches remain rejected, while equivalent CASE, IFNULL and COALESCE controls execute natively. TRUE, FALSE and NULL conditions were checked under UTC, Asia/Shanghai and America/Los_Angeles.
Runtime probe
Input type:
Input:
[+I[true, 1969-12-31T23:59:59.999999999Z, 2024-03-10T10:00:00Z]]Flink result:
[[1969-12-31T23:59:59.999999999Z]]; resolved type:[TIMESTAMP_LTZ(9)]. Native substitutions:0.Cover TIMESTAMP_LTZ precisions 0/3/6/9, pre-epoch fractional instants, DST boundaries, nullable branches, selected/unselected failures and empty filtered batches. This is separate from BOOLEAN IF admission in #210.
Acceptance
Preserve released Flink values, resolved types, NULL behavior and relevant error/short-circuit semantics. Add runtime-source SQL regressions that assert the specific native operator as well as result parity; do not use constant folding as proof of native support. Keep safe fallback for unverified forms and update the corresponding operator coverage documentation.