Re: BUG #8230: Time interval size overflow

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: BUG #8230: Time interval size overflow
Дата
Msg-id 20140125205652.GC9750@momjian.us
обсуждение исходный текст
Ответ на BUG #8230: Time interval size overflow  (rok.kralj@gmail.com)
Ответы Re: BUG #8230: Time interval size overflow  (Rok Kralj <rok.kralj@gmail.com>)
Список pgsql-bugs
On Sun, Jun 16, 2013 at 11:03:53AM +0000, rok.kralj@gmail.com wrote:
> The following bug has been logged on the website:
>
> Bug reference:      8230
> Logged by:          Rok Kralj
> Email address:      rok.kralj@gmail.com
> PostgreSQL version: 9.2.4
> Operating system:   Arch Linux
> Description:
>
> As far as I know, the INTERVAL type is represented using three int32, one
> for months, days and milliseconds.
>
> However, overflow detections seems to work correctly only on these three
> types; if they get overflown indirectly, they do not get detected:
>
> SELECT INTERVAL '3000000000 days'
> ERROR:  interval field value out of range: "3000000000 days"
>
> SELECT INTERVAL '2000000000 years'
> -147483648 years
>
> I'm surprised this hasn't been reported yet. The expected behaviour is to
> raise an error.

The attached patch fixes the problem:

    test=> SELECT INTERVAL '2000000000 years';
    ERROR:  interval out of range
    LINE 1: SELECT INTERVAL '2000000000 years';

It also fixes this case

    test=> SELECT INTERVAL '2000000000-3 years';
    ERROR:  interval field value out of range: "2000000000-3 years"
    LINE 1: SELECT INTERVAL '2000000000-3 years';

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +

Вложения

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

Предыдущее
От: Marco Atzeri
Дата:
Сообщение: Re: BUG #8970: ts_parse incorrectly split numbers in digit token
Следующее
От: Rok Kralj
Дата:
Сообщение: Re: BUG #8230: Time interval size overflow