Re: Creating server-side functions: one simple error

Поиск
Список
Период
Сортировка
От Joe Conway
Тема Re: Creating server-side functions: one simple error
Дата
Msg-id 3DA4FE9B.4080005@joeconway.com
обсуждение исходный текст
Ответ на Creating server-side functions: one simple error  (Ruslan A Dautkhanov <rusland@scn.ru>)
Список pgsql-bugs
Ruslan A Dautkhanov wrote:
> Btw, how I can convert TEXT field to a CString one? I had tried to use
>   char *cnum = PG_GETARG_CSTRING(0)  instead of
>   text tnum = PG_GETARG_NAME(0),   but it's not worked properly. Is any function
> to convert text object to a null-terminated string??? Thanks again.
>

I like to use the following macros:

/* convert C string to text pointer */
#define GET_TEXT(cstrp) \
     DatumGetTextP(DirectFunctionCall1(textin, CStringGetDatum(cstrp)))
/* convert text pointer to C string */
#define GET_STR(textp) \
     DatumGetCString(DirectFunctionCall1(textout, PointerGetDatum(textp)))

then you can do, e.g.
   char   *cnum = GET_STR(PG_GETARG_TEXT_P(0));

BTW, there are lots of good examples of C functions in contrib.

HTH,

Joe

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Ruslan A Dautkhanov
Дата:
Сообщение: Re: Creating server-side functions: one simple error
Следующее
От: Ruslan A Dautkhanov
Дата:
Сообщение: Re: Creating server-side functions: one simple error