On 2012-11-29 16:18:07 +0530, Amit Kapila wrote: > On Thursday, November 29, 2012 12:39 AM Tom Lane wrote. > > Andres Freund <and...@2ndquadrant.com> writes: > > > On 2012-11-27 23:46:58 -0500, Tom Lane wrote: > > >> Attached is a very preliminary draft patch for this. I've not > > >> addressed the question of whether we can clear indcheckxmin during > > >> transactional updates of pg_index rows, but I think it covers > > >> everything else talked about in this thread. > > > > > Attached is an updated patch for HEAD that I think is about ready to go. > > I'll start making a back-patchable version shortly. > > I had verified in the Patch committed that the problem is resolved. > > I have a doubt related to RelationGetIndexList() function. > > In while loop, if index is not live then it continues, so it can be possible > that we don't find a valid index after this while loop. > But still after the loop, it marks relation->rd_indexvalid = 1. I am not > able to see any problem with it, but why to mark it as valid when actually > there is no valid index.
rd_indexvalid is just saying whether rd_indexlist is valid. A zero element list seems to be valid to me. If we don't set rd_indexvalid pg_index will constantly be rescanned because the result isn't considered cached anymore. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers