Dear community
Why should invalidate all of the caches of HANDLERS when adding a new
RelNode class in JaninoRelMetadataProvider.revise() method?
The Codes are below:
package org.apache.calcite.rel.metadata
public class JaninoRelMetadataProvider implements RelMetadataProvider {
synchronized <M extends Metadata, H extends MetadataHandler<M>> H revise(
Class<? extends RelNode> rClass, MetadataDef<M> def) {
if (ALL_RELS.add(rClass)) {
HANDLERS.invalidateAll();
}
//noinspection unchecked
return (H) create(def);
}
}