Looks like it useful remark, thanks !
Hi All
IIUC, the current implementation may be problematic.
Ignite disabled subquery rewriting in this PR(
https://github.com/apache/ignite/pull/9251), and I think the correct
process would be sqlnode => relnode => convert RexSubQuery to Correlate
=>
decorrelateQuery, however, the last two steps are inverse in the current
implementation. See PlannerHelper#optimize.
1. IgnitePlanner#rel will be called first, and
SqlToRelConverter#decorrelate will be called in this function.
2. Then, HEP_DECORRELATE will be called. The rules of this phase are
all
subquery removing(i.e. convert RexSubQuery to Correlate).
Although IgniteCorrelatedNestedLoopJoin could be used to implement
LogicalCorrelate, this is inefficient.