Re: Infinite Interval
От | Ashutosh Bapat |
---|---|
Тема | Re: Infinite Interval |
Дата | |
Msg-id | CAExHW5vT1_P=pzNhvyf2vPmRURenzyu0v0o0qpvxkzf8BeX=4w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Infinite Interval (Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>) |
Ответы |
Re: Infinite Interval
|
Список | pgsql-hackers |
I hurried too much on the previous patch. It introduced other problems. Attached is a better patch and also fixes problem below #select 'infinity'::interval * 0; ?column? ---------- infinity (1 row) with the patch we see #select 'infinity'::interval * 0; 2023-03-31 18:00:43.131 IST [240892] ERROR: interval out of range 2023-03-31 18:00:43.131 IST [240892] STATEMENT: select 'infinity'::interval * 0; ERROR: interval out of range which looks more appropriate given 0 * inf = Nan for float. There's some way to avoid separate checks for infinite-ness of interval and factor and use a single block using some integer arithmetic. But I think this is more readable. So I avoided doing that. Let me know if this works for you. Also added some test cases. -- Best Wishes, Ashutosh Bapat On Fri, Mar 31, 2023 at 3:46 PM Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> wrote: > > On Tue, Mar 28, 2023 at 7:17 PM Ashutosh Bapat > <ashutosh.bapat.oss@gmail.com> wrote: > > make sure that every > > operator that interval as one of its operands or the result has been > > covered in the code. > > time_mi_time - do we want to add an Assert to make sure that this > function does not produce an Interval structure which looks like > non-finite interval? > > multiplying an interval by infinity throws an error > #select '5 days'::interval * 'infinity'::float8; > 2023-03-29 19:40:15.797 IST [136240] ERROR: interval out of range > 2023-03-29 19:40:15.797 IST [136240] STATEMENT: select '5 > days'::interval * 'infinity'::float8; > ERROR: interval out of range > > I think this should produce an infinite interval now. Attached patch > to fix this, to be applied on top of your patch. With the patch > #select '5 days'::interval * 'infinity'::float8; > ?column? > ---------- > infinity > (1 row) > > Going through the tests now. > > -- > Best Wishes, > Ashutosh Bapat
Вложения
В списке pgsql-hackers по дате отправления: