Re: [sqlsmith] Crash in mcv_get_match_bitmap

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [sqlsmith] Crash in mcv_get_match_bitmap
Дата
Msg-id 17042.1562795124@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: [sqlsmith] Crash in mcv_get_match_bitmap  (Tomas Vondra <tomas.vondra@2ndquadrant.com>)
Ответы Re: [sqlsmith] Crash in mcv_get_match_bitmap  (Tomas Vondra <tomas.vondra@2ndquadrant.com>)
Список pgsql-hackers
Tomas Vondra <tomas.vondra@2ndquadrant.com> writes:
> Yeah, that's a bug. Will fix (not sure how yet).

You could do worse than replace this:

        ok = (NumRelids(clause) == 1) &&
            (is_pseudo_constant_clause(lsecond(expr->args)) ||
             (varonleft = false,
              is_pseudo_constant_clause(linitial(expr->args))));

with something like

    if (IsA(linitial(expr->args), Var) &&
        IsA(lsecond(expr->args), Const))
       ok = true, varonleft = true;
    else if (IsA(linitial(expr->args), Const) &&
             IsA(lsecond(expr->args), Var))
       ok = true, varonleft = false;

Or possibly get rid of varonleft as such, and merge extraction of the
"var" and "cst" variables into this test.

BTW, I bet passing a unary-argument OpExpr also makes this code
unhappy.

            regards, tom lane



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

Предыдущее
От: Joe Conway
Дата:
Сообщение: Re: [Proposal] Table-level Transparent Data Encryption (TDE) and KeyManagement Service (KMS)
Следующее
От: Tomas Vondra
Дата:
Сообщение: Re: [sqlsmith] Crash in mcv_get_match_bitmap