public static ExpressionAnalyzer createWithoutSubqueries(
      Metadata metadata,
      MPPQueryContext context,
      AccessControl accessControl,
      SessionInfo session,
      TypeProvider symbolTypes,
      Map<NodeRef<Parameter>, Expression> parameters,
      Function<Node, ? extends RuntimeException> statementAnalyzerRejection,
      WarningCollector warningCollector) {
    return new ExpressionAnalyzer(
        metadata,
        context,
        accessControl,
        (node, correlationSupport) -> {
          throw statementAnalyzerRejection.apply(node);
        },
        session,
        symbolTypes,
        parameters,
        warningCollector,
        expression -> {
          throw new IllegalStateException("Cannot access preanalyzed types");
        },
        functionCall -> {
          throw new IllegalStateException("Cannot access resolved windows");
        });
  }
@return the common supertype between the value type and subquery type
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/ExpressionAnalyzer.java