Separate null bits from data in columns #1545
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.
This PR reworks the storage null bits layout of node/rel columns.
We used to inline null bits in each physical page. Now the design shifts to separate null as a sub-column.
Note that in this PR, nulls are stored as bytes, which will be refactored into bits in a separate PR.
Besides this, node copy is simplified a bit:
NodeCopyExecutor
is simplified, and finally get rid of the semantically redundantInMemColumn
andInMemNodeColumn
.The feature of adding a new property with a given default value is disabled on columns.
The correct way to enable this later is to add support for constant columns.
TODO:
"CopyLargeNpyTest" is commented out, as I didn't finish changes in the copier to handle data types whose value size are not aligned with power of 2. I will finish that soon, meanwhile the PR should be reviewable.