-
Notifications
You must be signed in to change notification settings - Fork 447
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[VL] Fix a bug that may break bhj + exchange validation in a corner case #3595
Conversation
Thanks for opening a pull request! Could you open an issue for this pull request on Github Issues? https://github.com/oap-project/gluten/issues Then could you also rename commit message and pull request title in the following format?
See also: |
Run Gluten Clickhouse CI |
/Benchmark Velox |
===== Performance report for TPCH SF2000 with Velox backend, for reference only ====
|
TransformHints.tag(bhj, isBhjTransformable.toTransformHint) | ||
TransformHints.tagNotTransformable(exchange, isBhjTransformable) | ||
if (!isBhjTransformable.isValid) { | ||
TransformHints.tagNotTransformable(exchange, isBhjTransformable) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Once exchange was already tagged as transformable, This code may still re-tag it as non-transformable if bhj is considered non-transformable in validation at the time.
val out = plan.withNewChildren(plan.children.map(addTransformableTags)) | ||
addTransformableTag(out) | ||
out |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This ensures bhj is validated after the corresponding exchange is validated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
===== Performance report for TPCH SF2000 with Velox backend, for reference only ====
|
Previous bhj + exchange joint validation may not work because of bugs. The patch is to fix the broken logic.