You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Stamatis Zampetakis (Jira)" <ji...@apache.org> on 2023/02/09 13:52:00 UTC

[jira] [Updated] (CALCITE-5521) Remove redundant rowtype check in RelSubset#add

     [ https://issues.apache.org/jira/browse/CALCITE-5521?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stamatis Zampetakis updated CALCITE-5521:
-----------------------------------------
    Summary: Remove redundant rowtype check in RelSubset#add  (was: Remove redundant rowtype double checks in RelSubset#add)

> Remove redundant rowtype check in RelSubset#add
> -----------------------------------------------
>
>                 Key: CALCITE-5521
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5521
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: asdfgh19
>            Assignee: asdfgh19
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.34.0
>
>         Attachments: 未命名文件 (4).png
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> {code:java}
> void add(RelNode rel) {
>   if (set.rels.contains(rel)) {
>     return;
>   }
>   VolcanoPlanner planner = (VolcanoPlanner) rel.getCluster().getPlanner();
>   if (planner.getListener() != null) {
>     RelOptListener.RelEquivalenceEvent event =
>         new RelOptListener.RelEquivalenceEvent(
>             planner,
>             rel,
>             this,
>             true);
>     planner.getListener().relEquivalenceFound(event);
>   }
>   // If this isn't the first rel in the set, it must have compatible
>   // row type.
>   if (set.rel != null) {
>     RelOptUtil.equal("rowtype of new rel", rel.getRowType(),
>         "rowtype of set", getRowType(), Litmus.THROW);
>   }
>   set.addInternal(rel);
>   if (false) {
>     Set<CorrelationId> variablesSet = RelOptUtil.getVariablesSet(rel);
>     Set<CorrelationId> variablesStopped = rel.getVariablesSet();
>     Set<CorrelationId> variablesPropagated =
>         Util.minus(variablesSet, variablesStopped);
>     assert set.variablesPropagated.containsAll(variablesPropagated);
>     Set<CorrelationId> variablesUsed = RelOptUtil.getVariablesUsed(rel);
>     assert set.variablesUsed.containsAll(variablesUsed);
>   }
> } {code}
> !未命名文件 (4).png|width=741,height=451!
> Double checking relset rowtype and input parameter relNode rowtype may be unnecessary



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