Request for additional SPI functions.

Поиск
Список
Период
Сортировка
От Thomas Hallgren
Тема Request for additional SPI functions.
Дата
Msg-id btucog$bjl$1@news.hub.org
обсуждение исходный текст
Ответы Re: Request for additional SPI functions.  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
Short story:
I need two new functions in the Server Programming Interface (SPI) when
mapping an ExecutionPlan to a Java prepared statement (pljava project).

Long story:
My problem is that once a plan is prepared and I want to execute it, I send
an array of java objects for the arguments. The SPI_cursor_open/SPI_execp of
course expects the arguments to be Datum's and the mapper must convert java
objects. Knowing the Oid of each type, this is not a problem. Those are
hidden in the opaque execution plan (a void*). I'm all in favor of data
hiding and reluctant to use spi_priv.h so I propose that you add the
following two functions:

/*
* Returns the number of arguments for the prepared plan.
*/
int SPI_getargcount(void* plan)
{   if (plan == NULL)   {       SPI_result = SPI_ERROR_ARGUMENT;       return -1;   }   return
((_SPI_plan*)plan)->nargs;
}

/*
* Returns the Oid representing the type id for argument at argIndex. First
* parameter is at index zero.
*/
Oid SPI_getargtypeid(void* plan, int argIndex)   {   if (plan == NULL || argIndex < 0 || argIndex >=
((_SPI_plan*)plan)->nargs)   {       SPI_result = SPI_ERROR_ARGUMENT;       return InvalidOid;   }   return
((_SPI_plan*)plan)->argtypes[argIndex];
}

Regards,

Thomas Hallgren




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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: LWLock/ShmemIndex startup question
Следующее
От: Jan Wieck
Дата:
Сообщение: Re: [ADMIN] IEEE 754