From: | Merlin Moncure <mmoncure(at)gmail(dot)com> |
---|---|
To: | Alessandro Candini <candini(at)meeo(dot)it> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: libpq and Datums management with embedded C function |
Date: | 2011-02-17 17:16:04 |
Message-ID: | AANLkTi=A057jDrpsGRuf0u-eFn4hwbRekABGEOrakGSs@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Thu, Feb 17, 2011 at 4:16 AM, Alessandro Candini <candini(at)meeo(dot)it> wrote:
> I'm dealing witch a C function embedded into postgresql-9.0.2.
>
> I'm returning a set of rows and following the example here
> http://www.postgresql.org/docs/9.0/static/xfunc-c.html everything works
> fine, but only if I use the C string approach.
>
> I'm using libpq to retrieve data and something like this works fine:
> snprintf(values[0], 16, "%s", PQgetvalue(funcctx->user_fctx, call_cntr, 0));
> because PQgetvalue returns an array of char.
>
> But if I want to get the original data as output, I have to deal with Datums
> and I don't know how to do this with lippq.
> Something like the following it doesn't work:
>
> Datum values[1];
> values[0] = (Datum) PQgetvalue(funcctx->user_fctx, call_cntr, 1);
> snprintf(values[0], 16, "%s", PQgetvalue(funcctx->user_fctx, call_cntr, 0));
>
> Have you got any idea of how to solve this...do you know another way to
> perform a query indide the db without involve libpq?
> I would prefer to use them because I can connect to several postgresql
> instances.
Have you ruled out dblink? Also for connecting to self it would be
preferable to use SPI
(http://www.postgresql.org/docs/9.0/static/spi.html) vs libpq.
merlin
From | Date | Subject | |
---|---|---|---|
Next Message | Dmitriy Igrishin | 2011-02-17 17:42:31 | Re: SELECT INTO array[i] with PL/pgSQL |
Previous Message | Ahmed | 2011-02-17 15:58:46 | Re: "could not accept SSPI security context" |