private Optional<DecorrelatedNode> decorrelatedNode(
      List<Expression> correlatedPredicates, PlanNode node, List<Symbol> correlation) {
    if (containsCorrelation(node, correlation)) {
      // node is still correlated ; /
      return Optional.empty();
    }
    return Optional.of(new DecorrelatedNode(correlatedPredicates, node));
  }
@return constant symbols from a perspective of a subquery
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/optimizations/PlanNodeDecorrelator.java