{"record":{"id":"775c79a223473962","repo":"apache/druid","slug":"parque-does-not-support-nested-tree-extraction","errorCode":null,"errorMessage":"Parque does not support nested tree extraction","messagePattern":"Parque does not support nested tree extraction","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"extensions-core/parquet-extensions/src/main/java/org/apache/druid/data/input/parquet/simple/ParquetGroupFlattenerMaker.java","lineNumber":105,"sourceCode":"      return finalizeConversion(val);\n    };\n  }\n\n  @Nullable\n  @Override\n  public Function<Group, Object> makeJsonQueryExtractor(String expr)\n  {\n    throw new UnsupportedOperationException(\"Parquet does not support JQ\");\n  }\n\n  @Override\n  public Function<Group, Object> makeJsonTreeExtractor(List<String> nodes)\n  {\n    if (nodes.size() == 1) {\n      return (Group group) -> getRootField(group, nodes.get(0));\n    }\n\n    throw new UnsupportedOperationException(\"Parque does not support nested tree extraction\");\n  }\n\n  @Override\n  public JsonProvider getJsonProvider()\n  {\n    return parquetJsonProvider;\n  }\n\n  @Override\n  public Object finalizeConversionForMap(Object o)\n  {\n    return finalizeConversion(o);\n  }\n\n  /**\n   * {@link ParquetGroupConverter} lazily/non-recursively translates {@link Group} into plain java objects, which means\n   * garbage that downstream druid cannot understand can be left behind in list and map types, so we deal with it here.\n   */","sourceCodeStart":87,"sourceCodeEnd":123,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/extensions-core/parquet-extensions/src/main/java/org/apache/druid/data/input/parquet/simple/ParquetGroupFlattenerMaker.java#L87-L123","documentation":"Capability sentinel in ParquetGroupFlattenerMaker.makeJsonTreeExtractor: nested multi-node tree extraction (more than one path node) is not supported for parquet Group records; only single root-field access is implemented, so deeper nested tree expressions are rejected.","triggerScenarios":"Thrown at extensions-core/parquet-extensions/src/main/java/org/apache/druid/data/input/parquet/simple/ParquetGroupFlattenerMaker.java:105 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a JsonPath-based flattenSpec expression instead of a nested tree expression.","Access the root field only, or preprocess data to flatten the nested structure at ingestion."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9b90983fd291f26935af934383ce360473179e4d","analyzedAt":"2026-09-07T13:32:30.957Z","contentChangedAt":"2026-09-07T13:32:30.957Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}