Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lb48o-0008Pi-0A for pgsql-bugs@arkaria.postgresql.org; Mon, 26 Apr 2021 16:31:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lb48m-0001M8-VD for pgsql-bugs@arkaria.postgresql.org; Mon, 26 Apr 2021 16:31:20 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lb48m-0001J5-P1 for pgsql-bugs@lists.postgresql.org; Mon, 26 Apr 2021 16:31:20 +0000 Received: from momjian.us ([72.94.173.45]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lb48k-0002Hu-Ge for pgsql-bugs@lists.postgresql.org; Mon, 26 Apr 2021 16:31:19 +0000 Received: from bruce by momjian.us with local (Exim 4.92) (envelope-from ) id 1lb48i-0000IK-PF; Mon, 26 Apr 2021 12:31:16 -0400 Date: Mon, 26 Apr 2021 12:31:16 -0400 From: Bruce Momjian To: Noah Misch Cc: neverov.max@gmail.com, pgsql-bugs@lists.postgresql.org Subject: Re: BUG #16939: Plural interval for negative singular Message-ID: <20210426163116.GR7629@momjian.us> References: <16939-cceeb03fb72736ee@postgresql.org> <20210323160336.GE579@momjian.us> <20210425115726.GA2353095@rfd.leadboat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210425115726.GA2353095@rfd.leadboat.com> User-Agent: Mutt/1.10.1 (2018-07-13) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Sun, Apr 25, 2021 at 04:57:26AM -0700, Noah Misch wrote: > 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. Oh, good point. I think we should just pick one and be consistent --- I don't care which we choose. -- Bruce Momjian https://momjian.us EDB https://enterprisedb.com If only the physical world exists, free will is an illusion.