Null value offset is not necessary because null value bitmap can be placed at the beginning of body.
> 2024年6月27日 下午6:46,Jingsong Li <jingsongl...@gmail.com> 写道: > > Thanks guanshi for starting this discussion. > > I saw your suggestion in the document regarding omitting certain > fields. The question is whether we should introduce a compact format. > > Indeed, there may be situations where there are many values, and > introducing a compact format makes sense. > > Consider: > > -- head > version: 1 byte > row count: 4 bytes int > non-null value bitmap number: 4 bytes int > has null value: 1 byte > null value offset: 4 bytes if has null value > value x: var bytes for any data type (as > bitmap identifier) > offset: 4 bytes int > > -- body > serialized bitmap1 > serialized bitmap2 > serialized bitmap3 > > Optimization: > > Offset can be a negative number, and when it is negative, it > represents that there is only one value, and its position is the > inverse of the negative value. > > Best, > Jingsong > > On Thu, Jun 27, 2024 at 3:50 PM guanshi <1649067...@qq.com.invalid> wrote: >> >> Hello, this is the bitmap index format I designed, and I hope to discuss it >> with everyone: >> https://docs.google.com/document/d/1zKp_kqfoYgfmvfZ3DcNVMIXoYdxAsbe73eu98KEe3a8/edit?usp=sharing