I don't think the the assertion is wrong, it is expected. Equivalent relational 
operators should be in the same set. I think CALCITE-3981[1] fixed the 
canonical issue, I suspect the rel2subset mapping is not up to date, hence the 
assertion error. 

[1] https://issues.apache.org/jira/browse/CALCITE-3981

On 2021/06/13 18:35:02, Vladimir Ozerov <[email protected]> wrote: 
> Thanks, I created an issue [1] to improve the assertion.
> 
> [1] https://issues.apache.org/jira/browse/CALCITE-4650
> 
> пн, 7 июн. 2021 г. в 23:30, Haisheng Yuan <[email protected]>:
> 
> > > Shouldn't we remove the assertion above?
> > Perhaps.
> >
> > Or perhaps the rel2Subset mapping is not up to date.
> >
> > Regards,
> > Haisheng Yuan
> >
> > On 2021/06/06 13:09:16, Vladimir Ozerov <[email protected]> wrote:
> > > Hi,
> > >
> > > When doing a trait derivation in the non-OMAKASE mode, the following
> > lines
> > > of code are invoked:
> > > 1: RelSubset relSubset = planner.register(newRel, rel);
> > > 2: assert relSubset.set == planner.getSubset(rel).set;
> > >
> > > The assertion on the second line may fail because the "newRel" is
> > assigned
> > > not the "rel" set, but "rel" *canonical set*, which might be different.
> > >
> > > As a workaround, we may change the derive mode to OMAKASE. In this case,
> > we
> > > do not hit the assertion and planning completes successfully.
> > >
> > > Shouldn't we remove the assertion above?
> > >
> > > Regards,
> > > Vladimir.
> > >
> >
> 

Reply via email to