Re: Creating a Function with C that returns bytea

From: Joe Conway <mail(at)joeconway(dot)com>
To: busby(at)pnts(dot)com
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Creating a Function with C that returns bytea
Date: 2002-07-09 16:33:28
Message-ID: 3D2B1058.7060404@joeconway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Joe Conway 2002-07-09 16:36:47 Re: Returning bytea* from a C function
Previous Message Oliver Elphick 2002-07-09 16:30:52 Re: (A) native Windows port