Re: More issues with expressions always false (no patch)

Поиск
Список
Период
Сортировка
От Andreas Karlsson
Тема Re: More issues with expressions always false (no patch)
Дата
Msg-id f53ed33d-4869-8a32-4b35-cae674ddefca@proxel.se
обсуждение исходный текст
Ответ на More issues with expressions always false (no patch)  (Ranier Vilela <ranier.vf@gmail.com>)
Ответы Re: More issues with expressions always false (no patch)  (Andreas Karlsson <andreas@proxel.se>)
Список pgsql-hackers
On 12/20/19 1:01 AM, Ranier Vilela wrote:> First case:
> src \ backend \ executor \ nodeSubplan.c (line 507)
> 
> if (node-> hashtable)
> 
> node-> hastable is assigned with NULL at line 498, so the test will 
> always fail.
> 
> Second case:
> Here the case is similar, but worse.
> 
> src \ backend \ executor \ nodeSubplan.c (line 535)
> if (node-> hashnulls)
>    ResetTupleHashTable (node-> hashtable);

These two look like likely bugs. It looks like the code will always 
create new hash tables despite commit 
https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=356687bd825e5ca7230d43c1bffe7a59ad2e77bd 
intending to reset them if they already exist.

Additionally it looks like the code would reset the wrong hash table in 
the second place if the bug was fixed.

I have attached a patch.

> Third case:
> \ src \ backend \ utils \ cache \ relcache.c (line 5190)
> if (relation-> rd_pubactions)
> 
> It will never be executed, because if relation-> rd_pubactions is true, 
> the function returns on line 5154.

I have not looked into this one in detail, but the free at line 5192 
looks like potentially dead code.

Andreas


Вложения

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

Предыдущее
От: Ranier Vilela
Дата:
Сообщение: Re: [PATCH] Fix expressions always false
Следующее
От: Thomas Munro
Дата:
Сообщение: Re: [HACKERS] kqueue