@Override
  public final SearchNode merge(List<SearchNode> searchNodes) {
    if (searchNodes.isEmpty()) {
      throw new IllegalArgumentException("insertNodes should never be empty");
    }
    if (searchNodes.size() == 1) {
      return searchNodes.get(0);
    }
    List<InsertNode> insertNodes =
        searchNodes.stream()
            .map(searchNode -> (InsertNode) searchNode)
            .collect(Collectors.toList());
    InsertNode result = mergeInsertNode(insertNodes);
    result.setSearchIndex(insertNodes.get(0).getSearchIndex());
    result.setTargetPath(insertNodes.get(0).getTargetPath());
    return result;
  }
Physical address of data region after splitting
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/write/InsertNode.java