{
  "date": "2026-10-19",
  "scope": [
    "FLOAT",
    "DOUBLE",
    "VARBINARY",
    "INTERVAL SECOND(3)",
    "INTERVAL MONTH"
  ],
  "execution": "Existing released Flink correlate generator inside Arrow input/output; no new Rust kernel or JNI path; default admitted under accepted UDF performance exception. No speedup claim.",
  "native_library_sha256": "53ece29252fb0045b5e2317763c5c020e0b8e0793d74fa1b7d7dad991ba0978c",
  "sources": {
    "src/main/java/tech/streamfusion/planner/TableFunctionMatcher.java": "eb955c67aae67819107e6a947da2279030516c7f3accec732cc393abf73739ef",
    "src/test/java/tech/streamfusion/FlinkTypedTableFunctionSqlHarnessTest.java": "cf06f7ead6d96ecc2486b53ebc96b19bd7d21cc279cbb714b6d5c848191ce792"
  },
  "validation": [
    {
      "flink": "2.2.1",
      "tests": 54,
      "failures": 0,
      "errors": 0,
      "skips": 0,
      "cases": [
        "releasedTimePrecisionMismatchRemainsAHostFailure",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[1]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[2]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[3]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[4]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[5]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[6]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[7]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[8]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[9]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[10]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[11]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[12]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[13]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[14]",
        "decimalResultConversionRetainsReleasedRoundingAndOverflow",
        "explicitlyDisabledTableFunctionsRetainCompleteQueryFallback",
        "emptyInputAndFilteredInvocationsDoNotCallTheFunction",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[1]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[2]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[3]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[4]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[5]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[6]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[7]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[8]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[9]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[10]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[11]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[12]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[13]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[14]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[15]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[16]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[17]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[18]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[19]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[20]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[21]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[22]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[23]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[24]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[25]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[26]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[27]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[28]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[29]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[30]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[31]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[32]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[33]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[34]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[35]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[36]"
      ]
    },
    {
      "flink": "1.18.1",
      "tests": 54,
      "failures": 0,
      "errors": 0,
      "skips": 0,
      "cases": [
        "releasedTimePrecisionMismatchRemainsAHostFailure",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[1]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[2]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[3]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[4]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[5]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[6]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[7]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[8]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[9]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[10]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[11]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[12]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[13]",
        "allRowKindsAndRepeatedRecoveryRetainTypedRows(String)[14]",
        "decimalResultConversionRetainsReleasedRoundingAndOverflow",
        "explicitlyDisabledTableFunctionsRetainCompleteQueryFallback",
        "emptyInputAndFilteredInvocationsDoNotCallTheFunction",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[1]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[2]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[3]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[4]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[5]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[6]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[7]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[8]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[9]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[10]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[11]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[12]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[13]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[14]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[15]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[16]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[17]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[18]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[19]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[20]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[21]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[22]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[23]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[24]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[25]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[26]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[27]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[28]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[29]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[30]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[31]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[32]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[33]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[34]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[35]",
        "typedFanoutRetainsNullsPrecisionAndMutableOutput(String, String)[36]"
      ]
    }
  ],
  "fixture_development": {
    "initial": "Four interval cases fail in both engines before execution because explicit broad interval qualifiers trigger unsupported implicit casts.",
    "inferred_input": "Retaining inferred input types avoids that cast; broad output qualifiers still fail the same released code-generation type check in both engines.",
    "final": "Use canonical SECOND(3)/MONTH output declarations and retain inferred interval input types. The production matcher does not rewrite function declarations or bypass host checks."
  }
}
