Don't reset validity target count #9565
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes https://github.com/duckdblabs/duckdb-internal/issues/604
I've been thinking about this a bit and I think this fix should be ok. The target_count is only ever notSTANDARD_VECTOR_SIZE
when the validity is initialized by the child of anARRAY
vector, everywhere else where the default is not desired it is either resized or explicitly initialized with a specific size, at which point the target_count is changed anyway. So I don't think this will lead to a bunch of validity masks being kept around unnecessarily large.We need to resize the array child validity to the array child capacity after resetting from vector cache. Right now this forces an initialization of the validity mask, but once #9461 lands this will no longer be the case.