Re: Creating a Function with C that returns bytea - Mailing list pgsql-general

From Joe Conway
Subject Re: Creating a Function with C that returns bytea
Date
Msg-id 3D2B1058.7060404@joeconway.com
Whole thread Raw
In response to Creating a Function with C that returns bytea  (David Busby <busby@pnts.com>)
List pgsql-general
David Busby wrote:
> List,
>     I'm building this function in C that will return a bytea (hopefully)
> and
> cannot get it to return the bytea value.  Am I missing something really
> simple
>
>
> My code is similar to this:
>
> #include <necessary files>
> bytea *func() {
>     bytea *x = palloc(36);
>     // code to load the 36 bytes here
>     return x;
> }
>

To be helpful, we probably need more detail, but you should start with
section "12.5.4. Version-1 Calling Conventions for C-Language Functions" at:
http://www.postgresql.org/idocs/index.php?xfunc-c.html

You want to use "PG_RETURN_BYTEA_P(x)" to return bytea data from a user
function. Look at the "copytext(PG_FUNCTION_ARGS)" for an example of how
to deal with the size header.

HTH,

Joe



pgsql-general by date:

Previous
From: Joe Conway
Date:
Subject: Re: bytea to int conversion?
Next
From: Bruce Momjian
Date:
Subject: Re: I am being interviewed by OReilly