Re: Query generates infinite loop

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: Query generates infinite loop
Дата
Msg-id CAFj8pRDzVzTfsnxs_T9T7k=HW_gWCryo==rVB-AX4R6pXo85xQ@mail.gmail.com
обсуждение исходный текст
Ответ на Query generates infinite loop  (Richard Wesley <richard@duckdblabs.com>)
Ответы Re: Query generates infinite loop
Список pgsql-bugs
Hi

st 20. 4. 2022 v 18:42 odesílatel Richard Wesley <richard@duckdblabs.com> napsal:
Hi All -

I was implementing the infinity time constants in DuckDB when I ran into an infinite loop. It seems that PG has the same problem for the same reason (adding an interval to an infinite timestamp produces the same timestamp, so the increment operation never goes anywhere.)  Here is the query:
  1. select COUNT(*) 
    FROM generate_series('-infinity'::TIMESTAMP, 'epoch'::TIMESTAMP, INTERVAL '1 DAY');

This seems like a DoS great attack, so we are disallowing infinities as bounds for both table and scalar series generation. As an upper bound, it eventually gives an error, so it seems  there is not much utility anyway.

There are more ways to achieve the same effect. The protection is safe setting of temp_file_limit

2022-04-20 09:59:54) postgres=# set temp_file_limit to '1MB';
SET
(2022-04-20 18:51:48) postgres=# select COUNT(*)
FROM generate_series('-infinity'::TIMESTAMP, 'epoch'::TIMESTAMP, INTERVAL '1 DAY');
ERROR:  temporary file size exceeds temp_file_limit (1024kB)
(2022-04-20 18:51:50) postgres=#

Regards

Pavel




Met vriendelijke groet, best regards, mit freundlichen Grüßen,

Richard Wesley
Group-By Therapist
richard@duckdblabs.com





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

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: BUG #16866: pg_basebackup Windows Server 20160
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Query generates infinite loop