{"record":{"id":"f11a401c0a9cf272","repo":"prestodb/presto","slug":"arrow-flight-type-error","errorCode":"ARROW_FLIGHT_TYPE_ERROR","errorMessage":"Unexpected floating point precision: {floatingPoint.getPrecision()}","messagePattern":"Unexpected floating point precision: (.+?)","errorType":"error_code","errorClass":"ArrowException","httpStatus":null,"severity":"error","filePath":"presto-common-arrow/src/main/java/com/facebook/plugin/arrow/ArrowBlockBuilder.java","lineNumber":176,"sourceCode":"            }\n            case Struct: {\n                List<RowType.Field> children = field.getChildren().stream().map(child -> new RowType.Field(Optional.of(child.getName()), getPrestoTypeFromArrowField(child))).collect(toImmutableList());\n                return RowType.from(children);\n            }\n            default:\n                throw new UnsupportedOperationException(\"The data type \" + field.getType().getTypeID() + \" is not supported.\");\n        }\n    }\n\n    private Type getPrestoTypeForArrowFloatingPointType(ArrowType.FloatingPoint floatingPoint)\n    {\n        switch (floatingPoint.getPrecision()) {\n            case SINGLE:\n                return RealType.REAL;\n            case DOUBLE:\n                return DoubleType.DOUBLE;\n            default:\n                throw new ArrowException(ARROW_FLIGHT_TYPE_ERROR, \"Unexpected floating point precision: \" + floatingPoint.getPrecision());\n        }\n    }\n\n    private Type getPrestoTypeForArrowIntType(ArrowType.Int intType)\n    {\n        switch (intType.getBitWidth()) {\n            case 64:\n                return BigintType.BIGINT;\n            case 32:\n                return IntegerType.INTEGER;\n            case 16:\n                return SmallintType.SMALLINT;\n            case 8:\n                return TinyintType.TINYINT;\n            default:\n                throw new ArrowException(ARROW_FLIGHT_TYPE_ERROR, \"Unexpected bit width: \" + intType.getBitWidth());\n        }\n    }","sourceCodeStart":158,"sourceCodeEnd":194,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-common-arrow/src/main/java/com/facebook/plugin/arrow/ArrowBlockBuilder.java#L158-L194","documentation":"Raised while mapping an Arrow floating-point field to a Presto type: the field's precision does not correspond to any known width (HALF/SINGLE/DOUBLE). It is a sentinel guard for an unrecognized precision value; the message uses a literal '{floatingPoint.getPrecision()}' because it was not formatted.","triggerScenarios":"Thrown at presto-common-arrow/src/main/java/com/facebook/plugin/arrow/ArrowBlockBuilder.java:176 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use SINGLE or DOUBLE precision Arrow floating fields","Cast the column upstream to a supported precision"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}