On Wed, Jan 18, 2012 at 1:28 AM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Tue, Jan 17, 2012 at 12:06 PM, Peter Eisentraut <peter_e@gmx.net> wrote:
>> On mån, 2012-01-16 at 14:46 -0500, Robert Haas wrote:
>>> On Mon, Jan 16, 2012 at 2:06 PM, Peter Eisentraut <peter_e@gmx.net> wrote:
>>> > On mån, 2012-01-16 at 11:17 -0500, Robert Haas wrote:
>>> >> I don't see how setting indisvalid to false helps with this, because
>>> >> IIUC when a session sees indisvalid = false, it is supposed to avoid
>>> >> using the index for queries but still make new index entries when a
>>> >> write operation happens - but to drop an index, I think you'd need to
>>> >> get into a state where no one was using the index for anything at all.
>>> >
>>> > ISTM that one would need to set indisready to false instead.
>>>
>>> Maybe we should set both to false?
>>
>> Well, ready = false and valid = true doesn't make any sense. There is
>> only just-created -> ready -> valid. We might as well convert that to a
>> single "char" column, as you had indicated in your earlier email. But
>> that's independent of the proposed patch.
>
> Sure, but the point is that I think if you want everyone to stop
> touching the index, you ought to mark it both not-valid and not-ready,
> which the current patch doesn't do.
Thanks for the review and the important observation. I agree that I've
changed the wrong column. indisready must be set false. Also agree
setting both false makes most sense.
Can I just check with you that the only review comment is a one line
change? Seems better to make any additional review comments in one go.
--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services