Closed zellyn closed 6 years ago
I realize this is a big change with lots of things mixed together. On reflection, I'm probably too used to our work workflow, where you squash all commits together before merging. Let me know if I should break the changes up into multiple commits.
nah... it's ok, although I would have perhaps split it in 2: one CL with the recursive btree traversal and another one with the cleanups.
could you rebase and resolve the conflicts? (apologies for leaving this lingering a bit)
could you rebase and resolve the conflicts?
Done.
(apologies for leaving this lingering a bit)
On the contrary, you've been remarkably responsive :-)
Major change:
visitRawInorder
andvisitRecordsInorder
to btree, which will load and traverse child pages recursively, and use them instead of iterating.Smaller cleanups:
btreeTable
, so we can decode child pages.load
todecodeRecord
, and make it take just the payload bytes.loadCell
, a wrapper aroundparseCell
that first seeks to the right place. All callers used to do it themselves.parseCell
, to emphasize that it only parses the cell at the current seek position.btreeInteriorTable
.cellInfo.Key
tocellInfo.LeftChildPage
-- as far as I can tell, no int32 "Key" is mentioned in the data format description -- and don't put sizes in it.RowID
incellInfo
a pointer, since it's optional, but may be zero.