jcamachor commented on a change in pull request #1405:
URL: https://github.com/apache/hive/pull/1405#discussion_r476491640



##########
File path: 
ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSemiJoinRule.java
##########
@@ -33,194 +37,263 @@
 import org.apache.calcite.rex.RexBuilder;
 import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.tools.RelBuilder;
+import org.apache.calcite.tools.RelBuilder.GroupKey;
 import org.apache.calcite.tools.RelBuilderFactory;
 import org.apache.calcite.util.ImmutableBitSet;
+import org.apache.calcite.util.ImmutableIntList;
+import org.apache.hadoop.hive.ql.optimizer.calcite.HiveCalciteUtil;
 import org.apache.hadoop.hive.ql.optimizer.calcite.HiveRelFactories;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
 
 import java.util.ArrayList;
 import java.util.List;
 
 /**
- * Planner rule that creates a {@code SemiJoinRule} from a
- * {@link org.apache.calcite.rel.core.Join} on top of a
- * {@link org.apache.calcite.rel.logical.LogicalAggregate}.
- *
- * TODO Remove this rule and use Calcite's SemiJoinRule. Not possible currently
- * since Calcite doesnt use RelBuilder for this rule and we want to generate 
HiveSemiJoin rel here.
+ * Class that gathers SemiJoin conversion rules.
  */
-public abstract class HiveSemiJoinRule extends RelOptRule {
+public class HiveSemiJoinRule {
 
-  protected static final Logger LOG = 
LoggerFactory.getLogger(HiveSemiJoinRule.class);
+  public static final HiveProjectJoinToSemiJoinRule INSTANCE_PROJECT =
+      new HiveProjectJoinToSemiJoinRule(HiveRelFactories.HIVE_BUILDER);
 
-  public static final HiveProjectToSemiJoinRule INSTANCE_PROJECT =
-      new HiveProjectToSemiJoinRule(HiveRelFactories.HIVE_BUILDER);
+  public static final HiveAggregateJoinToSemiJoinRule INSTANCE_AGGREGATE =
+      new HiveAggregateJoinToSemiJoinRule(HiveRelFactories.HIVE_BUILDER);
 
-  public static final HiveProjectToSemiJoinRuleSwapInputs 
INSTANCE_PROJECT_SWAPPED =
-      new HiveProjectToSemiJoinRuleSwapInputs(HiveRelFactories.HIVE_BUILDER);
+  public static final HiveProjectJoinToSemiJoinRuleSwapInputs 
INSTANCE_PROJECT_SWAPPED =
+      new 
HiveProjectJoinToSemiJoinRuleSwapInputs(HiveRelFactories.HIVE_BUILDER);
 
-  public static final HiveAggregateToSemiJoinRule INSTANCE_AGGREGATE =
-      new HiveAggregateToSemiJoinRule(HiveRelFactories.HIVE_BUILDER);
+  public static final HiveAggregateJoinToSemiJoinRuleSwapInputs 
INSTANCE_AGGREGATE_SWAPPED =
+      new 
HiveAggregateJoinToSemiJoinRuleSwapInputs(HiveRelFactories.HIVE_BUILDER);

Review comment:
       done.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org
For additional commands, e-mail: gitbox-h...@hive.apache.org

Reply via email to