Re: BUG #18348: Inconsistency with EXTRACT([field] from INTERVAL);

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

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Bruce Momjian <bruce@momjian.us>
Cc: jian he <jian.universality@gmail.com>, Francisco Olarte <folarte@peoplecall.com>, Michael Bondarenko <work.michael.2956@gmail.com>, pgsql-bugs@lists.postgresql.org, dgrowleyml@gmail.com, Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Date: 2024-08-16T15:37:55Z
Lists: pgsql-bugs, pgsql-hackers
Bruce Momjian <bruce@momjian.us> writes:
> On Thu, Aug 15, 2024 at 10:45:58PM -0400, Bruce Momjian wrote:
>> I tested master, patch version 2 and patch version 3 with some sample
>> extract() queires, attached.  I like patch version 2.

I'm still pretty dissatisfied with both versions :-(

> I think there are two more issues.  In patch version 3, when months is
> zero and you check days, you should also check seconds if days is zero.

Eh?  v3 does that:

+                else if (interval->day > 0 ||
+                         (interval->day == 0 && interval->time >= 0))

But I'm starting to despair of reaching a solution that's actually
self-consistent.  Maybe we should leave the DTK_QUARTER behavior
alone, and content ourselves with adding DTK_WEEK.

			regards, tom lane



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix extraction of week and quarter fields from intervals.

  2. Doc: improve explanation of type interval, especially extract().