@Override
  public Pattern<ProjectNode> getPattern() {
    return project().with(source().matching(targetPattern.capturedAs(targetCapture)));
  }
@param <N> The node type to look for under the ProjectNode Looks for a Project parent over a N
    child, such that the parent doesn't use all the output columns of the child. Given that
    situation, invokes the pushDownProjectOff helper to possibly rewrite the child to produce
    fewer outputs.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ProjectOffPushDownRule.java