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
> 

Reply via email to