Hi all,
After [CALCITE-604 <https://issues.apache.org/jira/browse/CALCITE-604>], I
found the methods of RelMetadataQuery is not pluggable. By 'pluggable', I
mean RelMetadataQuery's behaviour can be re-defined by registering a
RelMetadataProvider in RelOptCluster.
For example, if I defined a RelMetadataProvider as follows and register it
using RelOptCluster#setMetadataProvider,
public class MyRelMetadataProvider extends ChainedRelMetadataProvider {
public MyRelMetadataProvider() {
super(
ImmutableList.of(
MyRelMdRowCount.SOURCE));
}
}
I expect RelMetadataQuery#getRowCount will invoke MyRelMdRowCount.SOURCE.
However I noticed that after CALCITE-604 it always use
DefaultRelMetadataProvider.
I do noticed an example of overriding RelMetadataQuery in RelMetadataTest,
but I guess by now I can only add metadata support rather than override
existing metadata?
I'm not sure if I'm using it in the right way, please correct me if I'm
wrong. Thanks!
Regards,
Ted Xu.