private static void idToFieldSchemaMap(TypeDescription typeDescription, Map<Integer, TypeDescription> idMap,
      Map<Integer, Integer> parentIdMap) {
    List<TypeDescription> children = typeDescription.getChildren();
    idMap.put(typeDescription.getId(), typeDescription);
    if (children != null) {
      for (TypeDescription child : children) {
        // Outermost struct column (always id=0) is not of any concern.
        if (typeDescription.getId() != 0) {
          parentIdMap.put(child.getId(), typeDescription.getId());
        }
        idToFieldSchemaMap(child, idMap, parentIdMap);
      }
    }
  }
Recursively builds 2 maps:
 ID to type description
 child to parent type description ID
@param typeDescription - the considered type description, root on first invocation
@param idMap
@param parentIdMap
ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java