On Wed, Jan 15, 2014 at 9:29 PM, Andres Freund <[email protected]> wrote: > Hi Fujii, Michael, > > Coverity indicated that there's a problem with this - a quick look > confirms that: > > foreach(lc, indexlist) > (*toastidxs)[i++] = index_open(lfirst_oid(lc), lock); > > /* Fetch the first valid index in list */ > for (i = 0; i < *num_indexes; i++) > { > Relation toastidx = *toastidxs[i]; > if (toastidx->rd_index->indisvalid) > { > res = i; > found = true; > break; > } > } > > Note how the second access to toastidxs is missing parentheses. It > should be (*toastidxs)[i]. > > I think this happens to mostly work because usually the older index will > still be valid when we open the toast indexes when there are multiple > ones and RelationGetIndexList() returns indexes in toast order. Oops, good catch. If someone could show up and commit the attached to master and REL9_3_STABLE... Regards, -- Michael
-- Sent via pgsql-committers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers
