convertJsonbObject convert JsonValue to Jsonb. Jsonb->vl_len_ is 4 byte JsonbContainer->header is 4 bytes JsonbContainer->children is an array of two elements, that's 8 bytes following the k/v part, 20 bytes In total 36 bytes. When Jsonb is stored to disk, I guess some conversion reduces the vl_len_ to 1 byte, hence total 33 bytes, but I cannot find the conversion logic. On Mon, Jul 31, 2023 at 7:10 PM jian he <jian.universality@xxxxxxxxx> wrote: > > > hi. > > drop table x; > create table x(js jsonb); > insert into x select '{"Hello world":1}'::jsonb; > select pg_column_size(js) from x; -- return 33. > > based on src/include/utils/jsonb.h > The key and value part is 20 bytes (is it correct?), Jsonb->vl_len_ is 4 byte, JsonbContainer->header is 4 bytes. That's 28 bytes. > > but now on-disk is 33 bytes. > so I am not sure where the remaining bytes are. > > > > > -- Regards Junwang Zhao