Re: pgsql: Get rid of pg_class.reltoastidxid.
| От | Michael Paquier |
|---|---|
| Тема | Re: pgsql: Get rid of pg_class.reltoastidxid. |
| Дата | |
| Msg-id | CAB7nPqSp0R+zmTKXNy1P_8dnLNLv3-B9hpqJkzzki4dWiOZUGQ@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: pgsql: Get rid of pg_class.reltoastidxid. (Andres Freund <andres@2ndquadrant.com>) |
| Ответы |
Re: pgsql: Get rid of pg_class.reltoastidxid.
|
| Список | pgsql-committers |
On Wed, Jan 15, 2014 at 9:29 PM, Andres Freund <andres@2ndquadrant.com> 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
В списке pgsql-committers по дате отправления: