From: | Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at> |
---|---|
To: | "'david(at)andl(dot)org *EXTERN*'" <david(at)andl(dot)org>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: How to detoast a column of type BYTEAOID |
Date: | 2016-04-18 08:05:09 |
Message-ID: | A737B7A37273E048B164557ADEF4A58B53840C16@ntex2010i.host.magwien.gv.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
david(at)andl(dot)org wrote:
> I am attempting to create a new language implementation. The language is
> Andl (andl.org) so the handler is plandl.
> I am having a bit of trouble executing SPI queries from inside plandl.
>
> The particular problem arises after calling SPI_cursor_fetch() and then
> SPI_getbinval() on a column of type BYTEA (BYTEAOID 17). I was expecting to
> get back a Datum of type bytea, but the length is crazy. From the look of
> the data, I suspect that what I have is a compressed TOAST, and I don't know
> how to handle those.
>
> 1. Does SPI_getbinval() indeed return compressed TOAST values?
> 2. If so, what should I do (in general) to ensure the values I retrieve are
> de-toasted?
You should use the PG_DETOAST_DATUM* macros from fmgr.h; see the documentation there.
Yours,
Laurenz Albe
From | Date | Subject | |
---|---|---|---|
Next Message | Albe Laurenz | 2016-04-18 08:10:52 | Re: what's the exact command definition in read committed isolation level? |
Previous Message | David Rowley | 2016-04-18 04:47:42 | Re: Enhancement request for pg_dump |