Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
In order to get an efficient query to generate possible values of the correlation variable, we need to push filters into joins after sql-to-rel conversion but before decorrelation. But pushing filters messes up the mappings that are created by SqlToRelConverter and used by RelDecorrelator.
Currently Planner.onCopy is used to inform the planner about changes. But it cannot capture what PushFilterThroughJoinRule is doing.
I think the correct solution is to build the mappings needed by RelDecorrelator based on the current state of the RelNode tree. And re-build, if necessary, when a rule has fired.
Another benefit: it would be possible to use RelDecorrelator for queries not