Skip to content

Conversation

Tishj
Copy link
Contributor

@Tishj Tishj commented Oct 19, 2024

This PR implements the suggestion made by Richard

When a validity_t is used for < ValidityMask::BITS_PER_VALUE values, the least significant bits are set, i.e if ValidityMask::BITS_PER_VALUE was 8

5 values uses :
xxx4 3210

For that we can construct the mask:
0001 1111

To check that all bits are set for those values

Given that ValidityMask::BITS_PER_VALUE is 64, we save 1<=n<64 function calls by doing this

@Tishj
Copy link
Contributor Author

Tishj commented Oct 19, 2024

Looking at the regressions tests, the old version seems to be faster (by a very thin margin) ??
It might just be noise, but all of them are very slightly slower now, which feels like it cant be a coincidence

@Mytherin Mytherin merged commit 5d24f21 into duckdb:feature Oct 20, 2024
40 checks passed
@Mytherin
Copy link
Collaborator

Thanks for the PR! LGTM.

I doubt the regression test results are related - ragged ends are pretty rare.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants