[ 
https://issues.apache.org/jira/browse/CALCITE-7340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18047311#comment-18047311
 ] 

Mihai Budiu commented on CALCITE-7340:
--------------------------------------

Yes, the first thing we have to agree on is "what are legal plans, and what do 
they mean".

For this purpose I propose to start by writing a validator which will reject 
illegal plans, e.g., plans where the same correlationId is introduced twice or 
never. The JavaDoc for this validator will be in essence a spec of legal plans.

Regarding the ON condition, we should build a minimal example program and the 
corresponding plan that we expect will represent the program. Then we should 
make sure that the subquery removal rule produces this plan, which must be 
valid according to the validator described above.

 

 

> The rules governing the use of CorrelationId values in plans are not fully 
> specified
> ------------------------------------------------------------------------------------
>
>                 Key: CALCITE-7340
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7340
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.41.0
>            Reporter: Mihai Budiu
>            Priority: Minor
>
> This issue is really about the Calcite internal representation of Rel nodes.
> There have been several recent discussions about manipulating plans that 
> contain CorrelationId values, and the conclusion seems to be that the rules 
> governing the use of such variables is not clear.
> Ideally these rules should be spelled out in a specification, and there 
> should be a tool to enforce them by validating plans. The JavaDoc for this 
> tool may be the right place to write the specification. I don't expect that 
> the specification will be long or complicated.
> RelBuilder may not be the right place to enforce such rules, because it 
> usually does not have visibility over the entire plan, and some of these 
> rules have to apply globally over entire plans. 
> See CALCITE-5784, CALCITE-7045 and the discussion in github over CALCITE-7336 
> for examples.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to