[segment_v2] Switch to Unified and Extensible Page Format (#2953)
Fixes #2892 IMPORTANT NOTICE: this CL makes incompatible changes to V2 storage format, developers need to create new tables for test. This CL refactors the metadata and page format for segment_v2 in order to * make it easy to extend existing page type * make it easy to add new page type while not sacrificing code reuse * make it possible to use SIMD to speed up page decoding Here we summary the main code changes * Page and index metadata is redesigned, please see `segment_v2.proto` * The new class `PageIO` is the single place for reading and writing all pages. This removes lots of duplicated code. `PageCompressor` and `PageDecompressor` are now useless and removed. * The type of value ordinal is changed from `rowid_t` to 64-bits `ordinal_t`, this affects ordinal index as well. * Column's ordinal index is now implemented by IndexPage, the same with IndexedColumn. * Zone map index is now implemented by IndexedColumn
This commit is contained in:
@ -64,6 +64,7 @@ private:
|
||||
add_mapping<OLAP_FIELD_TYPE_INT>();
|
||||
add_mapping<OLAP_FIELD_TYPE_UNSIGNED_INT>();
|
||||
add_mapping<OLAP_FIELD_TYPE_BIGINT>();
|
||||
add_mapping<OLAP_FIELD_TYPE_UNSIGNED_BIGINT>();
|
||||
add_mapping<OLAP_FIELD_TYPE_LARGEINT>();
|
||||
add_mapping<OLAP_FIELD_TYPE_DATETIME>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user