Re: fixing PQsetvalue()

Поиск
Список
Период
Сортировка
От Merlin Moncure
Тема Re: fixing PQsetvalue()
Дата
Msg-id BANLkTi=YzyzT5tN9Y3CHdU+hfmm_vQcXXw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: fixing PQsetvalue()  (Andrew Chernow <ac@esilo.com>)
Ответы Re: fixing PQsetvalue()  (Pavel Golub <pavel@microolap.com>)
Список pgsql-hackers
On Thu, Jun 23, 2011 at 7:54 AM, Andrew Chernow <ac@esilo.com> wrote:
>>    you are creating as you iterate through.  This behavior was
>>    unnecessary in terms of what libpqtypes and friends needed and may (as
>>    Tom suggested) come back to bite us at some point. As it turns out,
>>    PQsetvalue's operation on results that weren't created via
>>    PQmakeEmptyResult was totally busted because of the bug, so we have a
>>    unique opportunity to tinker with libpq here: you could argue that you
>>
>> +1
>>
>> Exactly at this moment I am thinking about using modifiable
>> (via PQsetvalue) PGresult instead of std::map in my C++ library
>> for store parameters for binding to executing command.
>> I am already designed how to implement it, and I supposed that
>> PQsetvalue is intended to work with any PGresult and not only
>> with those which has been created via PQmakeEmptyResult...
>> So, I am absolutely sure, that PQsetvalue should works with
>> any PGresult.
>
> All PGresults are created via PQmakeEmptyPGresult, including libpqtypes.
>  Actually, libpqtypes calls PQcopyResult which calls PQmakeEmptyPGresult.
>
> It might be better to say a "server" result vs. a "client" result.
> Currently, PQsetvalue is broken when provided a "server" generated result.

er, right-- the divergence was in how the tuples were getting added --
thanks for the clarification.  essentially your attached patch fixes
that divergence.

merlin


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

Предыдущее
От: Dmitriy Igrishin
Дата:
Сообщение: Re: fixing PQsetvalue()
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Hugetables question