As of 1.19, if you need to perform certain assertions regarding a RelNode tree and the contained traits you are encouraged to implement your own RelVisitor or
RelShuttledirectly. The reasons for deprecating this class are the following:
- The contract (Javadoc and naming) and the behavior of the class are inconsistent.
- The class is no longer used by any other components of the framework.
- The class was used only for debugging purposes.
RelTraitPropagationVisitor traverses a RelNode and its unregistered children, making sure that each has a full complement of traits. When a RelNode is found to be missing one or more traits, they are copied from a RelTraitSet given during construction.