public List<Column[]> getPassThroughResult(Column passThroughIndexes) {
    List<Column[]> result = new ArrayList<>();
    int sliceIndex = findSliceIndex(passThroughIndexes.getLong(0));
    int indexStart = 0;
    for (int i = 1; i < passThroughIndexes.getPositionCount(); i++) {
      if (!inSlice(passThroughIndexes.getLong(i), sliceIndex)) {
        int[] indexArray = new int[i - indexStart];
        for (int j = indexStart; j < i; j++) {
          indexArray[j - indexStart] =
              (int) (passThroughIndexes.getLong(j) - getSliceOffset(sliceIndex));
        }

        result.add(slices.get(sliceIndex).getPassThroughResult(indexArray));
        indexStart = i;
        sliceIndex = findSliceIndex(passThroughIndexes.getLong(i));
      }
    }
    int[] indexArray = new int[passThroughIndexes.getPositionCount() - indexStart];
    for (int j = indexStart; j < passThroughIndexes.getPositionCount(); j++) {
      indexArray[j - indexStart] =
          (int) (passThroughIndexes.getLong(j) - getSliceOffset(sliceIndex));
    }
    result.add(slices.get(sliceIndex).getPassThroughResult(indexArray));
    return result;
  }
Used to manage the slices of the partition. It is all in memory now.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/partition/PartitionCache.java