Re: [INTERFACES] libpq patch for binding tuples in a result set to user allocated memory

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [INTERFACES] libpq patch for binding tuples in a result set to user allocated memory
Дата
Msg-id 18990.950543823@sss.pgh.pa.us
обсуждение исходный текст
Ответ на libpq patch for binding tuples in a result set to user allocated memory  (Joel Reed <jreed@support.ddiworld.com>)
Ответы Re: [INTERFACES] libpq patch for binding tuples in a result set to user allocated memory  (Joel Reed <jreed@support.ddiworld.com>)
Re: [INTERFACES] libpq patch for binding tuples in a result set to user allocated memory  (Michael Meskes <meskes@postgresql.org>)
Список pgsql-interfaces
Joel Reed <jreed@support.ddiworld.com> writes:
> Having been used to being able to bind tuple data from a result set to
> user allocated memory (rather than having to copy the data out of the
> "libpq" like API's buffers to my memory locations) in my days working
> with ODBC, Oracle & SQLServer's C-API, i created the following patch
> which i thought i'd submit. I've included a README as well. 

I do not like this idea very much --- in the first place, it ties the
application far too tightly to internal representational details that
should be private to libpq, and in the second place the implementation
you offer is full of little gotchas like

>   a). construct an array of PGresAttValue's whose size is equal to the
>       number of columns in the result set. if you don't you'll core dump!

I really doubt that avoiding PQgetvalue() calls is worth taking those
kinds of risks and narrowing our options for future reimplementation of
the library and protocol.

In the long run we'll probably be moving to some more-modern interface
design like CORBA, which should help to address performance concerns
like these.
        regards, tom lane


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

Предыдущее
От: Peter Mount
Дата:
Сообщение: RE: [INTERFACES] JDBC driver
Следующее
От: Joel Reed
Дата:
Сообщение: Re: [INTERFACES] libpq patch for binding tuples in a result set to user allocated memory