Hi all!

I did a reproducer for mentioned case, and possible fix (at least it fixes this 
particular problem). [1]

Could someone verify please is provided reproducer/fix valid?

[1] 
https://github.com/korlov42/calcite/commit/f4a5c2f01e0ec67156f7e91c6b5839dca1db6776
 
<https://github.com/korlov42/calcite/commit/f4a5c2f01e0ec67156f7e91c6b5839dca1db6776>

-- 
Regards,
Konstantin Orlov




> On 5 Mar 2021, at 19:53, Konstantin Orlov <[email protected]> wrote:
> 
> Hi, folks!
> 
> I am facing the problem that derive is not being called for some newly 
> created relations. 
> 
> We have a several join algorithms, so we implemented a several physical 
> nodes. During an optimization process they all are created from a logical 
> join with default distribution trait and then they are converted to a single 
> distribution by a passThrough call. But derive is invoked only for the first 
> physical rel, because others relations after conversion from a logical rel 
> are added to the already optimized subset (subset.taskState == OPTIMIZED).
> 
> A derive invocation is important for us, because we create a different 
> variations of distribution here (like colocated join, sending one side to 
> another or full rehashing).
> 
> So the questions are:
> 1) Is it a bug or it so by design?
> 2) if this was done on purpose, how can we best get around this limitation?
> 
> Thanks in advance!
> 
> -- 
> Regards,
> Konstantin Orlov
> 
> 

Reply via email to