Skip to content
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

HashJoinExec Evaluates in ExecutionPlan::execute #2173

Closed
tustvold opened this issue Apr 6, 2022 · 0 comments · Fixed by #2317
Closed

HashJoinExec Evaluates in ExecutionPlan::execute #2173

tustvold opened this issue Apr 6, 2022 · 0 comments · Fixed by #2317
Labels
bug Something isn't working

Comments

@tustvold
Copy link
Contributor

tustvold commented Apr 6, 2022

Describe the bug

Similar to #1939, HashJoinExec drives its first child to completion within HashJoinExec::execute, see here, instead of returning a stream that performs this operation lazily.

This effectively stalls out constructing the rest of the physical plan until the child has been fully evaluated, and prevents result streaming from working correctly. It is also highly probable that one could construct a diamond shaped plan that would block indefinitely as a result.

To Reproduce

Run query incorporating a join

Expected behavior

ExecutionPlan::execute should return a stream of results, but should not block on those results being available

Additional context

I am currently experimenting with custom scheduling of physical plans, and this requires the construction of the physical plan to be correctly decoupled from its evaluation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant