/** * Takes care of tracing and listener notification when a rule's * transformation is applied. * * @param ruleCall description of rule call * @param newRel result of transformation * @param before true before registration of new rel; false after */ protected void notifyTransformation( RelOptRuleCall ruleCall, RelNode newRel, boolean before) { if (before && LOGGER.isLoggable(Level.FINE)) { LOGGER.fine( "call#" + ruleCall.id + ": Rule " + ruleCall.getRule() + " arguments " + Arrays.toString(ruleCall.rels) + " produced " + newRel); } if (listener != null) { RelOptListener.RuleProductionEvent event = new RelOptListener.RuleProductionEvent( this, newRel, ruleCall, before); listener.ruleProductionSucceeded(event); } }
/** * Takes care of tracing and listener notification when a rule's * transformation is applied. * * @param ruleCall description of rule call * @param newRel result of transformation * @param before true before registration of new rel; false after */ protected void notifyTransformation( RelOptRuleCall ruleCall, RelNode newRel, boolean before) { if (before && tracer.isLoggable(Level.FINE)) { tracer.fine( "Rule " + ruleCall.getRule() + " arguments " + RelOptUtil.toString(ruleCall.rels) + " produced " + newRel); } if (listener != null) { RelOptListener.RuleProductionEvent event = new RelOptListener.RuleProductionEvent( this, newRel, ruleCall, before); listener.ruleProductionSucceeded(event); } }
checkCancel(); assert ruleCall.getRule().matches(ruleCall); if (isRuleExcluded(ruleCall.getRule())) { if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine( "call#" + ruleCall.id + ": Rule [" + ruleCall.getRule() + "] not fired" + " due to exclusion filter"); LOGGER.fine( "call#" + ruleCall.id + ": Apply rule [" + ruleCall.getRule() + "] to " + Arrays.toString(ruleCall.rels)); ruleCall.getRule().onMatch(ruleCall);
assert ruleCall.getRule().matches(ruleCall); if (isRuleExcluded(ruleCall.getRule())) { if (tracer.isLoggable(Level.FINE)) { tracer.fine( "Rule [" + ruleCall.getRule() + "] not fired" + " due to exclusion filter"); "Apply rule [" + ruleCall.getRule() + "] to [" + RelOptUtil.toString(ruleCall.rels) + "]"); ruleCall.getRule().onMatch(ruleCall);
private void checkEvent( List<RelOptListener.RelEvent> eventList, int iEvent, Class expectedEventClass, RelNode expectedRel, Class<? extends RelOptRule> expectedRuleClass) { assertTrue(iEvent < eventList.size()); RelOptListener.RelEvent event = eventList.get(iEvent); assertSame( expectedEventClass, event.getClass()); if (expectedRel != null) { assertSame( expectedRel, event.getRel()); } if (expectedRuleClass != null) { RelOptListener.RuleEvent ruleEvent = (RelOptListener.RuleEvent) event; assertSame( expectedRuleClass, ruleEvent.getRuleCall().getRule().getClass()); } }
private void checkEvent( List<RelOptListener.RelEvent> eventList, int iEvent, Class expectedEventClass, RelNode expectedRel, Class<? extends RelOptRule> expectedRuleClass) { assertTrue(iEvent < eventList.size()); RelOptListener.RelEvent event = eventList.get(iEvent); assertSame( expectedEventClass, event.getClass()); if (expectedRel != null) { assertSame( expectedRel, event.getRel()); } if (expectedRuleClass != null) { RelOptListener.RuleEvent ruleEvent = (RelOptListener.RuleEvent) event; assertSame( expectedRuleClass, ruleEvent.getRuleCall().getRule().getClass()); } }