- Enclosing class:
- public static class AbstractConverter.ExpandConversionRule
- extends VolcanoRule
Rule which converts an
AbstractConverter into a chain of
converters from the source relation to the target calling convention.
The chain produced is mimimal: we have previously built the transitive
closure of the graph of conversions, so we choose the shortest chain.
AbstractConverter they are replacing, these
converters are guaranteed to be able to convert any relation of their
calling convention. Furthermore, because they introduce subsets of
other calling conventions along the way, these subsets may spawn more
efficient conversions which are not generally applicable.
AbstractConverters can be messy, so they restrain themselves: they
don't fire if the target subset already has an implementation (with
less than infinite cost).
public void onMatch(VolcanoRuleCall call)
- Description copied from class:
- This method is called every time the rule matches. At the time that
this method is called,
the set of relational expressions which match the operands to the
call.rels is the root expression.
Typically a rule would check that the nodes are valid matches, creates
a new expression, then calls back
to register the expression.
- Specified by:
onMatch in class