Re: BUG #16939: Plural interval for negative singular

Bruce Momjian <bruce@momjian.us>

From: Bruce Momjian <bruce@momjian.us>
To: neverov.max@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2021-03-23T16:03:36Z
Lists: pgsql-bugs

Attachments

On Tue, Mar 23, 2021 at 05:21:30AM +0000, PG Bug reporting form wrote:
> The following bug has been logged on the website:
> 
> Bug reference:      16939
> Logged by:          Max Neverov
> Email address:      neverov.max@gmail.com
> PostgreSQL version: 13.2
> Operating system:   alpine
> Description:        
> 
> Execute the query:
> postgres=# set intervalstyle='postgres';
> SET
> postgres=#  select interval '-1 year -1 day';
>      interval
> ------------------
>  -1 years -1 days
> (1 row)
> 
> Expected output:
> -1 year -1 day
> 
> The code
> (https://github.com/postgres/postgres/blob/master/src/backend/utils/adt/datetime.c#L4193)
> pluralizes a time unit if the value is not 1, should check both -1 and 1.
> 

Wow, interesting.  Seems there were a few places in the code that
handled this properly, and several that didn't.  The attached patch
fixes these and updates the regression tests.  I will apply this for PG
14 in the next few days.  This is too likely to break something to
backpatch.  Thanks for the report.

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  If only the physical world exists, free will is an illusion.

Commits

  1. In messages, use singular nouns for -1, like we do for +1.