Sorry, I forgot about the situation where there is only one null value, your design does not need to be changed.
> 2024年6月28日 上午10:53,guanshi <1649067...@qq.com> 写道: > > 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 >