Re: Initializing Datums for use with SPI_execute_plan

Поиск
Список
Период
Сортировка
От Andrew - Supernews
Тема Re: Initializing Datums for use with SPI_execute_plan
Дата
Msg-id slrnegttu3.2ea3.andrew+nonews@atlantis.supernews.net
обсуждение исходный текст
Ответ на Initializing Datums for use with SPI_execute_plan  ("Jack Orenstein" <jack.orenstein@gmail.com>)
Список pgsql-general
On 2006-09-18, "Jack Orenstein" <jack.orenstein@gmail.com> wrote:
> On 9/14/06, Andrew - Supernews <andrew+nonews@supernews.com> wrote:
>> One way:
>
> Thank you, I hope you can help with some clarifications.
>
>>
>>     bytea *my_bytea = (bytea *) palloc(byte_array_len + VARHDRSZ);
>>     memcpy(VARDATA(my_bytea), byte_array, byte_array_len);
>>     VARATT_SIZEP(my_bytea) = byte_array_len + VARHDRSZ;
>>
>>     values[0] = DirectFunctionCall1(textin,CStringGetDatum(yourstring));
>
> What is textin -- the name of a function?

textin is the name of the input function for the "text" type; it takes a
C string as input and returns a Datum. Most (but not all) type input
functions can be called this way. (The format of the C string that you pass
to a type input function is exactly the same as you'd send from a client,
without quoting/escaping.)

(The ones that can't be called by DirectFunctionCall1 are those that need
access to type info, such as array or composite value input, or user-defined
types. Those are callable using other fmgr interfaces.)

>>     values[1] = PointerGetDatum(my_bytea);
>
> One other thing is still unclear: What about signed/unsigned long? If
> I have a C long, then how do I get a Datum that I can assign to
> values[i]?

What matters isn't so much the C type that you have, as the SQL type that
you are supposedly providing. Pg doesn't have an "unsigned" type unless
you created your own, so the question is, are you passing an int4 or an
int8 to SQL?

--
Andrew, Supernews
http://www.supernews.com - individual and corporate NNTP services

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

Предыдущее
От: "Greg Sabino Mullane"
Дата:
Сообщение: Re: plz unsubscribe me
Следующее
От: Tom Lane
Дата:
Сообщение: Re: server resetting