[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

questions on volcano planner

Hi Julian,

I'm a developer from eBay(the same org with Kylin), we are now looking into
your implementation of Volcano planner and trying to implement a new
optimizer in Spark. We meet some questions when looking into your code, so
I wrote this email and hope you can help us understand your design:

1. When applying Commute and Associate rules to get alternative reorder
plans, we need to handle join conditions, for example,
      ((A join B on a=b) join C on b=c),
   it can be transformed to
      ((A join C on a=c) join B on b=c)
   if we didn't split the 2 sides of EqualTo, it could be:
      ((A join C) join B on a=b and b=c)    then A join C becomes a
Cartesian Join
   By looking into your code, seems you didn't split the 2 sides of
EqualTo, how did you avoid the Cartesian Join?

2. I try to debug into the JoinAssociateRule but failed even though I run
all your test cases. That's my second question.

Thanks a lot for your time in advance!

Xiaoju Wu
Phone:+86 17717640807