Re: function returning a row

Поиск
Список
Период
Сортировка
От Kjetil Haaland
Тема Re: function returning a row
Дата
Msg-id 200502011519.24336.kjetil.haaland@student.uib.no
обсуждение исходный текст
Ответ на Re: function returning a row  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: function returning a row  (Kjetil Haaland <kjetil.haaland@student.uib.no>)
Список pgsql-novice
On Monday 31 January 2005 18:23, Tom Lane wrote:
> memcpy would be safer; and of course you need to explicitly append a
> null byte afterwards.

Hi again

I have now used memcopy instead since that is safer and it looks like this

text *intext = PG_GETARG_TEXT_P(0);
    text *smltext = PG_GETARG_TEXT_P(1);
    in = (char*)palloc(VARSIZE(intext)-VARHDRSZ+1);
    sml = (char*)palloc(VARSIZE(smltext)-VARHDRSZ+1);

    memcpy(in, VARDATA(intext), VARSIZE(intext)-VARHDRSZ);
    in[VARSIZE(intext)-VARHDRSZ] = '\0';
    memcpy(sml, VARDATA(smltext), VARSIZE(smltext)-VARHDRSZ);
    sml[VARSIZE(smltext)-VARHDRSZ] = '\0';

    set = (set_data *) palloc(sizeof(*set)+strlen(in)+strlen(sml)+1);

I have also added a char table to the structure, so I can keep the input
strings here. That is why the palloc is changed. But I still have the same
problems with it as before. Is there anything wrong in the way I have used
the API for set returning functions? I think i have saved all the values that
I need for the next round now, so I can't find whats wrong with it.

-Kjetil

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

Предыдущее
От: "Schuhmacher, Bret"
Дата:
Сообщение: Re: LC_CTYPE question
Следующее
От: Tom Lane
Дата:
Сообщение: Re: [HACKERS] Last ID Problem