Обсуждение: [HACKERS] How to extract bytes from a bit/bit(n) Datum pointer?
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. Thanks! Valerio -- View this message in context: http://postgresql.nabble.com/How-to-extract-bytes-from-a-bit-bit-n-Datum-pointer-tp5939776.html Sent from the PostgreSQL - hackers mailing list archive at Nabble.com.
On Thu, Jan 19, 2017 at 5:53 PM, valeriof <valerio_farruggio@hotmail.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
Thank you Ashutosh! I've been looking everywhere for this info -- View this message in context: http://postgresql.nabble.com/How-to-extract-bytes-from-a-bit-bit-n-Datum-pointer-tp5939776p5939811.html Sent from the PostgreSQL - hackers mailing list archive at Nabble.com.