Re: Getting Text data as C string - Mailing list pgsql-general

From Denis Gasparin
Subject Re: Getting Text data as C string
Date
Msg-id 45F55C00.3040206@edistar.com
Whole thread Raw
In response to Re: Getting Text data as C string  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-general
Peter Eisentraut ha scritto:
Am Montag, 12. März 2007 12:47 schrieb Denis Gasparin: 
I wrote a simple c stored procedure that accepts only one text parameter
that i want to convert to a c string.
The problem is that i obtain the C string correctly but with spurious
characters at the end... I use these calls to obtain the c string:   
The data in a text datum is not null terminated.  You need to call the 
function textout() to convert.  Grep the source code for examples of invoking 
it.
 
I found these defines into the contrib section:

#define GET_STR(textp) DatumGetCString(DirectFunctionCall1(textout, PointerGetDatum(textp)))
#define GET_TEXT(cstrp) DatumGetTextP(DirectFunctionCall1(textin, CStringGetDatum(cstrp)))

So i can safely use them to obtain a string pointer from a text pointer and viceversa.

I tried and all seemed to work ok.
Thank you,
Denis

pgsql-general by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: PostgreSQL crashes on Windows 2003
Next
From: Michael Fuhr
Date:
Subject: Re: DBD::Pg/perl question, kind of...