{"record":{"id":"aa27ccf0f2027193","repo":"prestodb/presto","slug":"the-data-type-field-gettype-gettypeid-is-not","errorCode":null,"errorMessage":"The data type {field.getType().getTypeID()} is not supported.","messagePattern":"The data type (.+?) is not supported\\.","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"presto-common-arrow/src/main/java/com/facebook/plugin/arrow/ArrowBlockBuilder.java","lineNumber":164,"sourceCode":"                List<Field> children = field.getChildren();\n                checkArgument(children.size() == 1, \"Arrow List expected to have 1 child Field, got: \" + children.size());\n                return new ArrayType(getPrestoTypeFromArrowField(field.getChildren().get(0)));\n            }\n            case Map: {\n                List<Field> children = field.getChildren();\n                checkArgument(children.size() == 1, \"Arrow Map expected to have 1 child Field for entries, got: \" + children.size());\n                Field entryField = children.get(0);\n                checkArgument(entryField.getChildren().size() == 2, \"Arrow Map entries expected to have 2 child Fields, got: \" + children.size());\n                Type keyType = getPrestoTypeFromArrowField(entryField.getChildren().get(0));\n                Type valueType = getPrestoTypeFromArrowField(entryField.getChildren().get(1));\n                return typeManager.getType(parseTypeSignature(format(\"map(%s,%s)\", keyType.getTypeSignature(), valueType.getTypeSignature())));\n            }\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()) {","sourceCodeStart":146,"sourceCodeEnd":182,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-common-arrow/src/main/java/com/facebook/plugin/arrow/ArrowBlockBuilder.java#L146-L182","documentation":"getPrestoTypeFromArrowField's default branch: the Arrow field's type ID (e.g. union, dense union, or other unmapped Arrow types) has no Presto type mapping, so schema conversion of the Arrow data fails.","triggerScenarios":"Thrown at presto-common-arrow/src/main/java/com/facebook/plugin/arrow/ArrowBlockBuilder.java:164 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Cast the Arrow column to a supported type before transfer","Add a mapping case for the Arrow type in ArrowBlockBuilder","Avoid querying unsupported Arrow field types"],"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"}