Skip to content

Conversation

@viirya
Copy link
Member

@viirya viirya commented Oct 30, 2022

Which issue does this PR close?

Closes #4035.

Rationale for this change

Currently coerce rule coerces floating types to decimal type. It doesn't look correct.

What changes are included in this PR?

Are there any user-facing changes?

@github-actions github-actions bot added core Core DataFusion crate logical-expr Logical plan and expressions physical-expr Changes to the physical-expr crates labels Oct 30, 2022
Comment on lines 336 to 341
(Decimal128(_, _), Float32 | Float64) => {
Some(Float64)
}
(Float32 | Float64, Decimal128(_, _)) => {
Some(Float64)
}
Copy link
Member Author

@viirya viirya Oct 30, 2022

Choose a reason for hiding this comment

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

Follow Spark's decimal type coercision rule.

Copy link
Member

Choose a reason for hiding this comment

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

I think we need to add the same in comparison_binary_numeric_coercion and that helps towards q6

Copy link
Contributor

Choose a reason for hiding this comment

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

I think we need to add the same in comparison_binary_numeric_coercion and that helps towards q6

the rule between arithmetic op and logical op may be different.

@viirya viirya force-pushed the fix_decimal_float_coerce branch 3 times, most recently from 9cb6e90 to 582cc14 Compare October 31, 2022 02:14
@viirya viirya force-pushed the fix_decimal_float_coerce branch from 582cc14 to af10480 Compare October 31, 2022 02:48
Copy link
Member

@andygrove andygrove left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks @viirya!

@Dandandan Dandandan merged commit 5cf090a into apache:master Oct 31, 2022
@Dandandan
Copy link
Contributor

Thanks @viirya

@ursabot
Copy link

ursabot commented Oct 31, 2022

Benchmark runs are scheduled for baseline = a1c1cd2 and contender = 5cf090a. 5cf090a 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

@viirya
Copy link
Member Author

viirya commented Oct 31, 2022

Thanks @andygrove @Dandandan

Dandandan pushed a commit to yuuch/arrow-datafusion that referenced this pull request Nov 5, 2022
@tustvold
Copy link
Contributor

This appears to have also fixed #3437 and #3791

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Core DataFusion crate logical-expr Logical plan and expressions physical-expr Changes to the physical-expr crates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Decimal multiplied by Float produces incorrect results

6 participants