Mihai Budiu created CALCITE-7023:
------------------------------------
Summary: Create an optimization pass which can decorrelate subplans
Key: CALCITE-7023
URL: https://issues.apache.org/jira/browse/CALCITE-7023
Project: Calcite
Issue Type: Improvement
Components: core
Affects Versions: 1.39.0
Reporter: Mihai Budiu
Today the Calcite decorrelator attempts to decorrelate an entire query tree; if
it fails, it returns the tree unchanged. However, sometimes a query tree can
contain multiple subtrees rooted by Correlate nodes, some of which can be
decorrelated using the existing decorrelator.
One can write an optimization rule which can attempt to apply the decorrelator
to subtrees rooted at Correlate nodes which do not have any Correlate children.
This "incremental" decorrelation strategy may manage to decorrelate queries
that otherwise would fail.
The naive approach would strip the subtree before invoking the decorrelator.
Maybe there is a better way to do this, but using the decorrelator as a black
box is easy.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)