public static List<Expression> concatExpressionWithSuffixPaths(
      final Expression expression,
      final List<PartialPath> prefixPaths,
      final PathPatternTree patternTree,
      final MPPQueryContext queryContext) {
    return new ConcatExpressionWithSuffixPathsVisitor()
        .process(
            expression,
            new ConcatExpressionWithSuffixPathsVisitor.Context(
                prefixPaths, patternTree, queryContext));
  }
Concat suffix path in SELECT or WITHOUT NULL clause with the prefix path in the FROM clause.
and Construct a {@link PathPatternTree}.

@param expression expression in SELECT or WITHOUT NULL clause which may include suffix paths
@param prefixPaths prefix paths in the FROM clause
@param patternTree a PathPatternTree contains all paths to query
@return the concatenated expression list
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/ExpressionAnalyzer.java