private PlanBuilder planInPredicate(
      PlanBuilder subPlan, Cluster<InPredicate> cluster, Analysis.SubqueryAnalysis subqueries) {
    // Plan one of the predicates from the cluster
    InPredicate predicate = cluster.getRepresentative();

    Expression value = predicate.getValue();
    SubqueryExpression subquery = (SubqueryExpression) predicate.getValueList();
    Symbol output = symbolAllocator.newSymbol(predicate, BOOLEAN);

    subPlan = handleSubqueries(subPlan, value, subqueries);
    subPlan =
        planInPredicate(
            subPlan, value, subquery, output, predicate, analysis.getPredicateCoercions(predicate));

    return new PlanBuilder(
        subPlan
            .getTranslations()
            .withAdditionalMappings(mapAll(cluster, subPlan.getScope(), output)),
        subPlan.getRoot());
  }
Group expressions into clusters such that all entries in a cluster are #equals to each other
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/SubqueryPlanner.java