Re: BUG #16939: Plural interval for negative singular

Поиск
Список
Период
Сортировка
От Noah Misch
Тема Re: BUG #16939: Plural interval for negative singular
Дата
Msg-id 20210425115726.GA2353095@rfd.leadboat.com
обсуждение исходный текст
Ответ на Re: BUG #16939: Plural interval for negative singular  (Bruce Momjian <bruce@momjian.us>)
Ответы Re: BUG #16939: Plural interval for negative singular  (Bruce Momjian <bruce@momjian.us>)
Список pgsql-bugs
On Tue, Mar 23, 2021 at 12:03:36PM -0400, Bruce Momjian wrote:
> On Tue, Mar 23, 2021 at 05:21:30AM +0000, PG Bug reporting form wrote:
> > 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.

From the first several links at
https://www.google.com/search?q=negative+one+singular+plural the choice is a
matter of dispute among English grammar commentators.  Singular "-1" is
popular, and plural "-1" is also popular.

> 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.

Let's not change from one popular spelling to another when doing so creates a
compatibility hazard.  That is to say, I think PostgreSQL would be better with
this patch reverted.

If we did want to standardize on singular for -1, EVALUATE_MESSAGE_PLURAL()
would be a key bit of code to change.



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: BUG #16980: invalid memory alloc request size
Следующее
От: Mats Kindahl
Дата:
Сообщение: Re: Bug in handling default privileges inside extension update scripts