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

Minor: Clean up the code of MutableArrayData #1763

Merged
merged 1 commit into from
May 31, 2022

Conversation

HaoYang670
Copy link
Contributor

Signed-off-by: remzi 13716567376yh@gmail.com

Which issue does this PR close?

None.

Rationale for this change

Make the code cleaner.

What changes are included in this PR?

  1. use macro to avoid duplicate code.
  2. use short circuit to calculate use_null
    ...

Are there any user-facing changes?

No.

Signed-off-by: remzi <13716567376yh@gmail.com>
@github-actions github-actions bot added the arrow Changes to the arrow crate label May 29, 2022
if arrays.iter().any(|array| array.null_count() > 0) {
use_nulls = true;
};
let use_nulls = use_nulls | arrays.iter().any(|array| array.null_count() > 0);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Short circuit here.

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 this is incorrect, as described above use_nulls is a hint, and should be false if the only source of nulls are the arras themselves.

To explain why, you might have a number of source arrays that don't contain any nulls, but then call extend_nulls.

If it helps I tried to clean this up a bit in #1225 but abandoned it for lack of time - if you wanted to pick it up again...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think this is incorrect, as described above use_nulls is a hint, and should be false if the only source of nulls are the arras themselves.

Thank you @tustvold for your review. I am still a little confused about it.
This is the truth table in my mind:

the input value of use_nulls arrays.any(null_count > 0) final value of use_nulls
true true true
true false true
false true true
false false false

Although I not very clear about the whole logic of the function with_capacities, for use_nulls I think this is the logic.

Copy link
Contributor

Choose a reason for hiding this comment

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

Aah yes, was a long day and brain was fried 😅

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Aah yes, was a long day and brain was fried 😅

Haha, summer is coming!

@codecov-commenter
Copy link

Codecov Report

Merging #1763 (e3d25c6) into master (6e6a9e1) will increase coverage by 0.00%.
The diff coverage is 45.00%.

@@           Coverage Diff           @@
##           master    #1763   +/-   ##
=======================================
  Coverage   83.48%   83.48%           
=======================================
  Files         196      196           
  Lines       55923    55907   -16     
=======================================
- Hits        46686    46676   -10     
+ Misses       9237     9231    -6     
Impacted Files Coverage Δ
arrow/src/array/transform/mod.rs 87.41% <45.00%> (+0.56%) ⬆️
arrow/src/datatypes/datatype.rs 65.42% <0.00%> (-0.38%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6e6a9e1...e3d25c6. Read the comment docs.

@tustvold tustvold merged commit e09c9f0 into apache:master May 31, 2022
@HaoYang670 HaoYang670 deleted the clean_up_MutableArrayData branch May 31, 2022 10:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arrow Changes to the arrow crate
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants