Re: Initializing Datums for use with SPI_execute_plan
| От | Jack Orenstein |
|---|---|
| Тема | Re: Initializing Datums for use with SPI_execute_plan |
| Дата | |
| Msg-id | 7ecd811f0609181140h5a3533ack34ff8fd294a39fe0@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: Initializing Datums for use with SPI_execute_plan (Andrew - Supernews <andrew+nonews@supernews.com>) |
| Список | pgsql-general |
On 9/14/06, Andrew - Supernews <andrew+nonews@supernews.com> wrote: > On 2006-09-14, "Jack Orenstein" <jack.orenstein@gmail.com> wrote: > > I don't think I explained myself clearly. I have a C string (char*, > > terminating zero) and a byte array (char*, possibly containing zeros, > > and I know the length). I want to obtain Datums wrapping these values > > that will be used to bind varchar and bytea columns, and I'm trying to > > find out how to generate these Datums. > > 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? > 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]? Jack Orenstein
В списке pgsql-general по дате отправления: