Обсуждение: range data type size not mention in docs.

Поиск
Список
Период
Сортировка

range data type size not mention in docs.

От
Jian He
Дата:

range type seem not mention their size in the docs.
multi range size is variable.
But range size seems fixed.
why it's 17 byte?
select  pg_column_size('[10,20)' ::int4range ); --17 byte
select pg_column_size('[-2147483648,2147483647)' ::int4range ); --17 byte.

Re: range data type size not mention in docs.

От
"David G. Johnston"
Дата:
On Wednesday, February 16, 2022, Jian He <hejian.mark@gmail.com> wrote:

range type seem not mention their size in the docs.
multi range size is variable.
But range size seems fixed.
why it's 17 byte?
select  pg_column_size('[10,20)' ::int4range ); --17 byte
select pg_column_size('[-2147483648,2147483647)' ::int4range ); --17 byte.
https://github.com/postgres/postgres/blob/4429f6a9e3e12bb4af6e3677fbc78cd80f160252/src/backend/utils/adt/rangetypes.c#L183 
* Binary representation: The first byte is the flags, then 4 bytes are the * range type Oid, then the lower bound (if present) then the upper bound (if * present). Each bound is represented by a 4-byte length header and the binary * representation of that bound (as returned by a call to the send function for * the subtype).
David J.