Re: return varchar from C function - Mailing list pgsql-hackers

From Gregory Stark
Subject Re: return varchar from C function
Date
Msg-id 874ppjqzky.fsf@stark.xeocode.com
Whole thread Raw
In response to Re: return varchar from C function  ("Pavel Stehule" <pavel.stehule@hotmail.com>)
Responses Re: return varchar from C function  ("Pavel Stehule" <pavel.stehule@hotmail.com>)
Re: return varchar from C function  (Enrico <scotty@linuxtime.it>)
List pgsql-hackers
"Pavel Stehule" <pavel.stehule@hotmail.com> writes:

>
> Datum *const_fce(PG_FUNCTION_ARGS)
> {
>    text *txt = palloc(5 + VARHDRSZ);
>    memcpy(VARDATA(txt), "pavel", 5);
>    VARATT_SIZE(txt) = 5 + VARHDRSZ;
>
>    PG_RETURN_TEXT_P(txt);
> }

Much better practice is to use the input function of the data type you want to
convert to:

{text *txt = DatumGetTextP(DirectFunctionCall1(textin, CStringGetDatum("pavel")));PG_RETURN_TEXT_P(txt);
}



--  Gregory Stark EnterpriseDB          http://www.enterprisedb.com


pgsql-hackers by date:

Previous
From: "Pavel Stehule"
Date:
Subject: Re: return varchar from C function
Next
From: Martijn van Oosterhout
Date:
Subject: Re: return varchar from C function