Re: How to extract bytes from a bit/bit(n) Datum pointer?

From: Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>
To: valeriof <valerio_farruggio(at)hotmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: How to extract bytes from a bit/bit(n) Datum pointer?
Date: 2017-01-19 12:42:57
Message-ID: CAFjFpRcfmhjsGSkJPW5EVinrzypmemgUkQQ1VyQ7UEMHvH9Ccw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Jan 19, 2017 at 5:53 PM, valeriof <valerio_farruggio(at)hotmail(dot)com> wrote:
> Hi,
>
> This may come from my lack of experience with Postgres, but I'm trying to
> extract the byte portion of a Datum that is of type VarBit - bit/bit(n). I
> see that the Datum pointer contains the value content of the bytes (after a
> few bytes for the header) but I would need to point to the actual value
> (plus also the number of bytes to be picked up).

>
> I currently have a similar issue with BYTEAOID columns. I have a Datum
> pointer but can't get the actual content.

If you have not looked at DatumGetVarBitP() and DatumGetByteaP(), that
will get you corresponding structure pointers from a Datum. Then check
src/backend/utils/adt/varbit.c and bytea_* functions from
src/backend/utils/adt/varlena.c to understand how those structures are
used.

--
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Borodin 2017-01-19 12:50:10 Re: Review: GIN non-intrusive vacuum of posting tree
Previous Message Pavel Stehule 2017-01-19 12:40:22 Re: patch: function xmltable