public static ExpectedValueProvider<DataOrganizationSpecification> specification(
      List<String> partitionBy, List<String> orderBy, Map<String, SortOrder> orderings) {
    return new SpecificationProvider(
        partitionBy.stream().map(SymbolAlias::new).collect(toImmutableList()),
        orderBy.stream().map(SymbolAlias::new).collect(toImmutableList()),
        orderings.entrySet().stream()
            .collect(
                toImmutableMap(entry -> new SymbolAlias(entry.getKey()), Map.Entry::getValue)));
  }
Matches to any tree of nodes with children matching to given source matchers.
anyTree(tableScan("nation")) - will match to any plan which all leafs contain any node
containing table scan from nation table.

<p>Note: anyTree does not match zero nodes. E.g. output(anyTree(tableScan)) will NOT match
TableScan node followed by OutputNode.
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/PlanMatchPattern.java