Hi, I am working on FLINK-4541 issue and this is my current changes: https://github.com/apache/flink/compare/master...AlexanderShoshin:FLINK-4541.
I found that NOT IN does not work with nested queries because of missed DataSet planner rule for a cross join. After adding DataSetCrossJoinRule several tests from org.apache.flink.api.scala.batch.ExplainTest (testJoinWithExtended and testJoinWithoutExtended) that should check execution plans became fail because VolcanoPlanner started to build new execution plans for them using DataSetCrossJoin. That's why I increased DataSetCrossJoin cost (in computeSelfCost(...) function) to avoid its usage if it is possible. But it seems to be not a good idea. Do you have any ideas how to solve a problem with testJoinWithExtended and testJoinWithoutExtended tests in another way? Is it correct that these tests check an execution plan instead of a query result? Regards, Alexander