public static boolean isPatternRecognitionFunction(FunctionCall node) {
    QualifiedName qualifiedName = node.getName();
    if (qualifiedName.getParts().size() > 1) {
      return false;
    }
    Identifier identifier = qualifiedName.getOriginalParts().get(0);
    if (identifier.isDelimited()) {
      return false;
    }
    String name = identifier.getValue().toUpperCase(ENGLISH);
    return name.equals("RPR_FIRST")
        || name.equals("RPR_LAST")
        || name.equals("PREV")
        || name.equals("NEXT")
        || name.equals("CLASSIFIER")
        || name.equals("MATCH_NUMBER");
  }
@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