-
Notifications
You must be signed in to change notification settings - Fork 28.9k
[SPARK-8608][SPARK-8609][SPARK-9083][SQL] reset mutable states of nondeterministic expression before evaluation and fix PullOutNondeterministic #7674
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
Conversation
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.
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.
to make it more clear, now this PR is aimed to bug fix, i.e. fix nondeterministic expression handling for local projection and sort. Leave #7593 to optimization, i.e. remove still-need-evaluate expressions from Sort.
|
Test build #38467 has finished for PR 7674 at commit
|
|
Test build #38469 has finished for PR 7674 at commit
|
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.
lazy val here - otherwise a failure in the ctor could wipe out the entire test suite and then test cases won't show up as a failed tests.
|
@cloud-fan I'm confused -- what did this change do? Is it the change in the analyzer that fixes the bug? If yes, can you add a unit test to the analyzer rule, in addition to the test case in the DataFrameSuite? |
|
Test build #38490 has finished for PR 7674 at commit
|
|
retest this please. |
|
Test build #110 has finished for PR 7674 at commit
|
|
Test build #38495 has finished for PR 7674 at commit
|
|
retest this please. |
|
Test build #38509 has finished for PR 7674 at commit
|
|
Test build #111 has finished for PR 7674 at commit
|
|
Test build #38528 has finished for PR 7674 at commit
|
We will do local projection for LocalRelation, and thus reuse the same Expression object among multiply evaluations. We should reset the mutable states of Expression before evaluate it.
Fix
PullOutNondeterministicrule to make it work forSort.Also got a chance to cleanup the dataframe test suite.