{"record":{"id":"f09647d182a060a0","repo":"apache/beam","slug":"field-type-dcfieldtype-is-not-supported-field-column","errorCode":null,"errorMessage":"Field type '{dcFieldType}' is not supported (field '{column}')","messagePattern":"Field type '(.+?)' is not supported \\(field '(.+?)'\\)","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"sdks/java/extensions/sql/datacatalog/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/datacatalog/SchemaUtils.java","lineNumber":98,"sourceCode":"          \"Field mode '\" + column.getMode() + \"' is not supported (field '\" + name + \"')\");\n    }\n\n    return field;\n  }\n\n  private static FieldType getBeamFieldType(ColumnSchema column) {\n    String dcFieldType = column.getType();\n\n    if (FIELD_TYPES.containsKey(dcFieldType)) {\n      return FIELD_TYPES.get(dcFieldType);\n    }\n\n    if (\"STRUCT\".equals(dcFieldType)) {\n      Schema structSchema = fromColumnsList(column.getSubcolumnsList());\n      return FieldType.row(structSchema);\n    }\n\n    throw new UnsupportedOperationException(\n        \"Field type '\" + dcFieldType + \"' is not supported (field '\" + column.getColumn() + \"')\");\n  }\n\n  /** Convert Beam schema to DataCatalog schema. */\n  static com.google.cloud.datacatalog.v1beta1.Schema toDataCatalog(Schema schema) {\n    com.google.cloud.datacatalog.v1beta1.Schema.Builder schemaBuilder =\n        com.google.cloud.datacatalog.v1beta1.Schema.newBuilder();\n    for (Schema.Field field : schema.getFields()) {\n      schemaBuilder.addColumns(fromBeamField(field));\n    }\n    return schemaBuilder.build();\n  }\n\n  private static ColumnSchema fromBeamField(Schema.Field field) {\n    Schema.FieldType fieldType = field.getType();\n    if (fieldType.getTypeName().equals(Schema.TypeName.ARRAY)) {\n      if (fieldType.getNullable()) {\n        throw new UnsupportedOperationException(","sourceCodeStart":80,"sourceCodeEnd":116,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/extensions/sql/datacatalog/src/main/java/org/apache/beam/sdk/extensions/sql/meta/provider/datacatalog/SchemaUtils.java#L80-L116","documentation":"SchemaUtils.getBeamFieldType throws this when a Data Catalog column's type string is not one of the supported primitive types (INT64, FLOAT64, STRING, BOOL, TIMESTAMP, STRUCT, etc.). The type cannot be mapped to a Beam FieldType.","triggerScenarios":"A column in the Data Catalog schema has an unmapped type string (e.g. BYTES, NUMERIC, or a custom type) during DC->Beam schema conversion.","commonSituations":"Schemas authored in Data Catalog with types Beam SQL does not yet support, or type names differing in case/spelling from the expected constants.","solutions":["Change the column type to a supported one (INT64, FLOAT64, STRING, BOOL, TIMESTAMP, STRUCT)","Map unsupported types to supported equivalents before registering (e.g. NUMERIC -> FLOAT64)","Extend SchemaUtils with a mapping if you control the code and need the type"],"exampleFix":"// before\ncolumn.setType('NUMERIC')\n// after\ncolumn.setType('FLOAT64')","handlingStrategy":"validation","validationCode":"java.util.Set<String> ok = java.util.Set.of(\"INT64\",\"FLOAT64\",\"STRING\",\"BOOL\",\"TIMESTAMP\",\"STRUCT\",\"MAP\");\nfor (ColumnSchema c : schema.getColumnsList()) {\n  if (!ok.contains(c.getType())) throw new IllegalArgumentException(\"Unsupported type: \" + c.getType());\n}","typeGuard":"static boolean isSupportedDcType(ColumnSchema c) {\n  return java.util.Arrays.asList(\"INT64\",\"FLOAT64\",\"STRING\",\"BOOL\",\"TIMESTAMP\",\"STRUCT\").contains(c.getType());\n}","tryCatchPattern":"try {\n  Schema s = SchemaUtils.fromDataCatalog(dcSchema);\n} catch (UnsupportedOperationException ex) {\n  LOG.error(\"Unsupported DC field type\", ex);\n}","preventionTips":["Stick to the documented primitive types when creating DataCatalog schemas","Downcast exotic types (NUMERIC/BYTES) to supported ones at write time","Track SchemaUtils for newly added type support before upgrading"],"tags":["datacatalog","schema","field-type"],"backgroundTag":"invalid-enum-value","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}