private static Map<Integer, OrcColumn> mapIdsToOrcFileColumns(List<OrcColumn> columns) {
    ImmutableMap.Builder<Integer, OrcColumn> columnsById = ImmutableMap.builder();
    Traverser.forTree(OrcColumn::getNestedColumns)
        .depthFirstPreOrder(columns)
        .forEach(
            column -> {
              String fieldId = column.getAttributes().get(ORC_ICEBERG_ID_KEY);
              if (fieldId != null) {
                columnsById.put(Integer.parseInt(fieldId), column);
              }
            });
    return columnsById.buildOrThrow();
  }
Gets the index based dereference chain to get from the readColumnHandle to the
expectedColumnHandle
amoro-format-mixed/amoro-mixed-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergPageSourceProvider.java