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

bugfix: fix tpcds_logical_q8 ambiguous name. #5335

Merged
merged 2 commits into from
Feb 22, 2023
Merged

Conversation

jackwener
Copy link
Member

@jackwener jackwener commented Feb 19, 2023

Which issue does this PR close?

Closes #5334.
Part of #4685.

Rationale for this change

What changes are included in this PR?

Are these changes tested?

This PR fix tpcds_logical_q8.

Are there any user-facing changes?

@github-actions github-actions bot added the optimizer Optimizer rules label Feb 19, 2023
@jackwener jackwener requested a review from alamb February 19, 2023 08:26
Copy link
Contributor

@alamb alamb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks ok to me @jackwener -- but I think we should have some sort of test that passes with this change and fails without it. The rationale being that without such coverage this logic may get lost during a refactoring or some other code change and we wouldn't know because no test would fail

Comment on lines +295 to +300
let fields_without_qualifier = matches
.iter()
.filter(|f| f.qualifier.is_none())
.collect::<Vec<_>>();
if fields_without_qualifier.len() == 1 {
Ok(fields_without_qualifier[0])
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You might be able to write this using find instead

Something like

Suggested change
let fields_without_qualifier = matches
.iter()
.filter(|f| f.qualifier.is_none())
.collect::<Vec<_>>();
if fields_without_qualifier.len() == 1 {
Ok(fields_without_qualifier[0])
if let Some(fields_without_qualifier) = matches
.iter()
.find(|f| f.qualifier.is_none()) {
Ok(fields_without_qualifier[0])

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When fields_without_qualifier size > 1, we should still return a Error.
So we shouldn't use find

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense 👍

@jackwener
Copy link
Member Author

but I think we should have some sort of test that passes with this change and fails without it. The rationale being that without such coverage this logic may get lost during a refactoring or some other code change and we wouldn't know because no test would fail

Thank you @alamb , I add a new integration-test for this issue.
Before this PR, it will fail. it will work after this PR.

Copy link
Contributor

@alamb alamb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @jackwener !

@jackwener jackwener merged commit f6e49ac into apache:main Feb 22, 2023
@jackwener jackwener deleted the q8 branch February 22, 2023 12:40
@ursabot
Copy link

ursabot commented Feb 22, 2023

Benchmark runs are scheduled for baseline = 554852e and contender = f6e49ac. f6e49ac is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Skipped ⚠️ Benchmarking of arrow-datafusion-commits is not supported on ec2-t3-xlarge-us-east-2] ec2-t3-xlarge-us-east-2
[Skipped ⚠️ Benchmarking of arrow-datafusion-commits is not supported on test-mac-arm] test-mac-arm
[Skipped ⚠️ Benchmarking of arrow-datafusion-commits is not supported on ursa-i9-9960x] ursa-i9-9960x
[Skipped ⚠️ Benchmarking of arrow-datafusion-commits is not supported on ursa-thinkcentre-m75q] ursa-thinkcentre-m75q
Buildkite builds:
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python, R. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

jiangzhx pushed a commit to jiangzhx/arrow-datafusion that referenced this pull request Feb 24, 2023
* bugfix: fix tpcds_logical_q8 ambiguous name.

* add integration-test
@andygrove andygrove added the bug Something isn't working label Mar 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working optimizer Optimizer rules
Projects
None yet
Development

Successfully merging this pull request may close these issues.

tpcds_logical_q8 ambiguous name.
4 participants