Re: PQdeleteTuple function in libpq - Mailing list pgsql-hackers

From Merlin Moncure
Subject Re: PQdeleteTuple function in libpq
Date
Msg-id BANLkTinOKYn2rS+LvCvLfOjeKuvKQS4PiA@mail.gmail.com
Whole thread Raw
In response to Re: PQdeleteTuple function in libpq  (Alvaro Herrera <alvherre@commandprompt.com>)
List pgsql-hackers
On Thu, Jun 2, 2011 at 10:02 AM, Alvaro Herrera
<alvherre@commandprompt.com> wrote:
> Excerpts from Andrew Chernow's message of jue jun 02 10:12:40 -0400 2011:
>
>> > Andrew, why we have PQmakeEmptyPGresult, PQcopyResult,
>> > PQsetResultAttrs, PQsetvalue and PQresultAlloc in this case? Of course
>> > there's no big deal with their absence but let's be consistent.
>>
>> I'm not entirely sure what you are trying to do, but can't you use
>> PQmakeEmptyPGresult, PQsetResultAttrs and PQsetvalue to construct a
>> result that excludes the tuples you don't want followed by a
>> PQclear(initial_result)?
>
> Seems pretty wasteful if you want to delete a single tuple from a large
> result.  I think if you desired to compact the result to free some
> memory after deleting a large fraction of the tuples in the result it
> could be useful to do that, otherwise just live with the unused holes in
> the storage area as suggested by Pavel.

That would work, but it would potentially invalidate external pointers
to internal result data.  If you wanted to do this, it might be better
to expose a compaction feature which can be invoked directly.

merlin


pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: pgpool versus sequences
Next
From: Tom Lane
Date:
Subject: Re: vacuum and row type