| От | 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 по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера