{"record":{"id":"42daba0c91a0f0a5","repo":"apache/iceberg","slug":"unsupported-variant-shredded-typed-value-object-w","errorCode":null,"errorMessage":"Unsupported variant: shredded typed_value object with \" + fieldResults.size() + \" fields","messagePattern":"Unsupported variant: shredded typed_value object with \" \\+ fieldResults\\.size\\(\\) \\+ \" fields","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorizedVariantVisitor.java","lineNumber":113,"sourceCode":"  @Override\n  public VectorizedReader<?> primitive(PrimitiveType primitive) {\n    throw new UnsupportedOperationException(\"Unsupported variant: shredded typed_value primitive\");\n  }\n\n  @Override\n  public VectorizedReader<?> value(\n      GroupType value, VectorizedReader<?> valueResult, VectorizedReader<?> typedResult) {\n    if (typedResult != null) {\n      throw new UnsupportedOperationException(\n          \"Unsupported variant: shredded typed_value primitive\");\n    }\n    return valueResult;\n  }\n\n  @Override\n  public VectorizedReader<?> object(\n      GroupType object, VectorizedReader<?> valueResult, List<VectorizedReader<?>> fieldResults) {\n    throw new UnsupportedOperationException(\n        \"Unsupported variant: shredded typed_value object with \" + fieldResults.size() + \" fields\");\n  }\n\n  @Override\n  public VectorizedReader<?> array(\n      GroupType array, VectorizedReader<?> valueResult, VectorizedReader<?> elementResult) {\n    throw new UnsupportedOperationException(\"Unsupported variant: shredded typed_value array\");\n  }\n\n  private ColumnDescriptor resolveDescriptor(PrimitiveType primitive) {\n    // Build full column path: variant group path + primitive name\n    // e.g., [\"v1\", \"metadata\"] or [\"v2\", \"value\"]\n    String[] path = new String[variantGroupPath.length + 1];\n    System.arraycopy(variantGroupPath, 0, path, 0, variantGroupPath.length);\n    path[variantGroupPath.length] = primitive.getName();\n\n    try {\n      return parquetSchema.getColumnDescription(path);","sourceCodeStart":95,"sourceCodeEnd":131,"githubUrl":"https://github.com/apache/iceberg/blob/86d9c8fc543e7c56c9f624eb725f76c9baff9570/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/VectorizedVariantVisitor.java#L95-L131","documentation":"VectorizedVariantVisitor.object handles Variant typed_value shredded as an object. Any shredded typed_value object (regardless of field count) has no vectorized reader implementation, so object() unconditionally throws UnsupportedOperationException including the number of fields encountered.","triggerScenarios":"Vectorized read of a Variant column whose shredding produced an object-typed typed_value group; the ParquetVariantShredding visitor routes to object() and throws.","commonSituations":"Querying shredded Variant data written with object shredding (e.g. shredded struct-valued Variants) using a reader version without object support; enabling vectorization by default on such tables.","solutions":["Upgrade Iceberg to a version implementing object-typed typed_value vectorized reads","Disable vectorized reads for the table/scan","Rewrite the data without object shredding via compaction"],"exampleFix":"// before\nspark.read.option(\"vectorized-reader-enabled\", \"true\").load(\"shredded_variant_table\")\n// after\nspark.read.option(\"vectorized-reader-enabled\", \"false\").load(\"shredded_variant_table\")","handlingStrategy":"fallback","validationCode":"if (typedValueField.getType() instanceof GroupType\n    && !isVariantValueGroup(typedValueField.getType())) {\n  // object-typed typed_value: not supported vectorized\n}","typeGuard":null,"tryCatchPattern":"try {\n  return vectorizedObjectVariantReader();\n} catch (UnsupportedOperationException e) {\n  return genericVariantReader();\n}","preventionTips":["Disable vectorization for tables with object-shredded Variants","Upgrade Iceberg to gain object typed_value support","Compact/rewrite with supported shred layouts before vectorized scans"],"tags":["variant","shredding","vectorized-reads"],"backgroundTag":"unsupported-operation","analyzedSha":"86d9c8fc543e7c56c9f624eb725f76c9baff9570","analyzedAt":"2026-09-12T00:46:39.097Z","contentChangedAt":"2026-09-12T00:46:39.097Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}