kuzu
kuzu copied to clipboard
Disk array builder cleanup
This separates the InMemDiskArrayBuilder from BaseDiskArray, renaming both to BlockVector and DiskArray, respectively.
The Hash index disk arrays are now initialized more similarly to the ColumnChunkMetadata disk arrays, using addDAHPageToFile
instead of relying on flushing an empty builder.
It was necessary also to remove the reserved element 0 of the overflow slots (so that the overflow disk arrays can be initialized just with the headers). Invalid overflow slots are now represented by UINT64_MAX
.
The Hash index headers are now being handled separately instead of using the disk arrays since they don't need the ability to be resized (removing the need for a header page and page index page for each header, which reduces disk usage a bit; I have further changes to reduce header sizes to follow this PR).