@Override
    protected Aggregate recreateTopOperator(RelBuilder builder, RexBuilder rexBuilder,
        int[] adjustments, Aggregate topAggregate, RelNode newInputOperator) {
      return (Aggregate) recreateAggregateOperator(builder, adjustments, topAggregate, newInputOperator);
    }
Rule that matches an Aggregate on top of a Join and tries to transform it
into a SemiJoin swapping its inputs.
ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSemiJoinRule.java