Re: Infinite Interval

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Joseph Koshakow <koshy44@gmail.com>
Cc: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>, "Gregory Stark (as CFM)" <stark.cfm@gmail.com>, jian he <jian.universality@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-03-19T21:13:01Z
Lists: pgsql-hackers
Joseph Koshakow <koshy44@gmail.com> writes:
> I must have been doing something wrong because I tried again today and
> it worked fine. However, I go get a lot of changes like the following:

>   -               if TIMESTAMP_IS_NOBEGIN(dt2)
>   -                       ereport(ERROR,
>   -
> (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
>   -                                        errmsg("timestamp out of
> range")));
>   +               if TIMESTAMP_IS_NOBEGIN
>   +                       (dt2)
>   +                               ereport(ERROR,
>   +
> (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
>   +                                                errmsg("timestamp out of
> range")));

> Should I keep these pgindent changes or keep it the way I have it?

Did you actually write "if TIMESTAMP_IS_NOBEGIN(dt2)" and not
"if (TIMESTAMP_IS_NOBEGIN(dt2))"?  If the former, I'm not surprised
that pgindent gets confused.  The parentheses are required by the
C standard.  Your code might accidentally work because the macro
has parentheses internally, but call sites have no business
knowing that.  For example, it would be completely legit to change
TIMESTAMP_IS_NOBEGIN to be a plain function, and then this would be
syntactically incorrect.

			regards, tom lane



Commits

  1. Support +/- infinity in the interval data type.

  2. Avoid integer overflow hazard in interval_time().

  3. Guard against overflow in make_interval().

  4. Fix minmax-multi on infinite date/timestamp values

  5. Optimize various aggregate deserialization functions, take 2

  6. Remove dead code in DecodeInterval()

  7. Accept "+infinity" in date and timestamp[tz] input.

  8. Fix overflow hazards in interval input and output conversions.