public inbox for [email protected]  
help / color / mirror / Atom feed
From: David G. Johnston <[email protected]>
To: Jian He <[email protected]>
Cc: [email protected] <[email protected]>
Subject: Re: range data type size not mention in docs.
Date: Wed, 16 Feb 2022 23:51:02 -0700
Message-ID: <CAKFQuwYXFimG=bBeR9DSWVKK8at_+s_eBbcXDtMuyP38xa0R7Q@mail.gmail.com> (raw)
In-Reply-To: <CAMV54g35XSAq=+RL6H5W+8F7UG-s9eaDNNCTRuEGy76Vo+GGXw@mail.gmail.com>
References: <CAMV54g35XSAq=+RL6H5W+8F7UG-s9eaDNNCTRuEGy76Vo+GGXw@mail.gmail.com>

On Wednesday, February 16, 2022, Jian He <[email protected]> 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...

* 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.


reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected]
  Subject: Re: range data type size not mention in docs.
  In-Reply-To: <CAKFQuwYXFimG=bBeR9DSWVKK8at_+s_eBbcXDtMuyP38xa0R7Q@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox