siddharthteotia commented on issue #1030: [CALCITE-2822] Allow MultiJoin rules with any project/filter URL: https://github.com/apache/calcite/pull/1030#issuecomment-478755526 @vlsi , I have rebased and added a test case to test Filter and Project MultiJoin merge rules work with any implementations of Filter and Project as opposed to just LogicalFilter and LogicalProject. For this I added CustomFilter and CustomProject as implementations of Filter and Project interfaces. Similarly, I had to pass in a custom RelBuilderFactory to SqltoRelConverter config as by default it uses RelFactories.LOGICAL_BUILDER which has all the default factories. The test case has implementations of Custom filter and project factory. One problem I have been facing is that SqlToRelConverter has hardcoded the filter factory to be used as default filter factor in RelFactories and thus the custom implementation doesn't get used for Filter. If you look at the test case plan in RelOptRulesTest.xml, you can see that the plan now has "MyProject" instead of "LogicalProject" but it is still having "LogicalFilter" because of this hardcoded factory in SqlToRelConverter at line#990 I couldn't really find a way of extracting the configured filter factor in SqlToRelConverter config -- something like config.getRelBuilderFactory.getFilterFactory(). AFAIK, there is probably no way of getting the specific factory class and using that instead of hardcoding to LogicalFilter factory. Can you please advise how this can be fixed?
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
