Notifies this listener that an optimizer rule has been successfully
applied to a particular relational expression, resulting in a new
equivalent expression (relEquivalenceFound will also be called unless the
new expression is identical to an existing one).

relEquivalenceFound

Notifies this listener that a relational expression has been registered
with a particular equivalence class after an equivalence has been either
detected or asserted. Equivalence classes may be either logical (all
expressions which yield the same result set) or physical (all expressions
which yield the same result set with a particular calling convention).

ruleAttempted

Notifies this listener that an optimizer rule is being applied to a
particular relational expression. This rule is called twice; once before
the rule is invoked, and once after. Note that the rel attribute of the
event is always the old expression.

ruleProductionSucceeded

Notifies this listener that an optimizer rule has been successfully
applied to a particular relational expression, resulting in a new
equivalent expression (relEquivalenceFound will also be called unless the
new expression is identical to an existing one). This rule is called
twice; once before registration of the new rel, and once after. Note that
the rel attribute of the event is always the new expression; to get the
old expression, use event.getRuleCall().rels[0].

relChosen

Notifies this listener that a relational expression has been chosen as
part of the final implementation of the query plan. After the plan is
complete, this is called one more time with null for the rel.