Re: XMAX_LOCK_ONLY and XMAX_COMMITTED (fk/multixact code)

Поиск
Список
Период
Сортировка
От Mark Dilger
Тема Re: XMAX_LOCK_ONLY and XMAX_COMMITTED (fk/multixact code)
Дата
Msg-id 873D6C1B-B299-449E-9A1A-09558C22C659@enterprisedb.com
обсуждение исходный текст
Ответ на Re: XMAX_LOCK_ONLY and XMAX_COMMITTED (fk/multixact code)  ("Bossart, Nathan" <bossartn@amazon.com>)
Ответы Re: XMAX_LOCK_ONLY and XMAX_COMMITTED (fk/multixact code)  ("Bossart, Nathan" <bossartn@amazon.com>)
Список pgsql-hackers

> On Nov 23, 2021, at 4:26 PM, Bossart, Nathan <bossartn@amazon.com> wrote:
>
> I've finally gotten started on this, and I've attached a work-in-
> progress patch to gather some early feedback.  I'm specifically
> wondering if there are other places it'd be good to check for these
> unsupported combinations and whether we should use the
> HEAP_XMAX_IS_LOCKED_ONLY macro or just look for the
> HEAP_XMAX_LOCK_ONLY bit.

I have to wonder if, when corruption is reported for conditions like this:

+    if ((ctx->tuphdr->t_infomask & HEAP_XMAX_COMMITTED) &&
+        HEAP_XMAX_IS_LOCKED_ONLY(ctx->tuphdr->t_infomask))

if the first thing we're going to want to know is which branch of the HEAP_XMAX_IS_LOCKED_ONLY macro evaluated true?
Shouldwe split this check to do each branch of the macro separately, such as: 

if (ctx->tuphdr->t_infomask & HEAP_XMAX_COMMITTED)
{
    if (ctx->tuphdr->t_infomask & HEAP_XMAX_LOCK_ONLY)
        ... report something ...
    else if ((ctx->tuphdr->t_infomask & (HEAP_XMAX_IS_MULTI | HEAP_LOCK_MASK)) == HEAP_XMAX_EXCL_LOCK)
        ... report a different thing ...
}

—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company






В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Bossart, Nathan"
Дата:
Сообщение: Re: XMAX_LOCK_ONLY and XMAX_COMMITTED (fk/multixact code)
Следующее
От: Greg Nancarrow
Дата:
Сообщение: Re: Windows build warnings