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.  (Robert Haas <robertmhaas@gmail.com>)
Список 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 по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: pgsql: Get rid of pg_class.reltoastidxid.
Следующее
От: Robert Haas
Дата:
Сообщение: Re: pgsql: Get rid of pg_class.reltoastidxid.