Re: BUG #18348: Inconsistency with EXTRACT([field] from INTERVAL);
Bruce Momjian <bruce@momjian.us>
From: Bruce Momjian <bruce@momjian.us>
To: Tom Lane <tgl@sss.pgh.pa.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-16T16:15:58Z
Lists: pgsql-bugs, pgsql-hackers
On Fri, Aug 16, 2024 at 12:06:35PM -0400, Tom Lane wrote: > regression=# select n, extract(quarter from interval '1 mon' * n) from generate_series(-12,12) n; > n | extract > -----+--------- > -12 | 1 > -11 | -2 > -10 | -2 > -9 | -2 Wow, that "1" is weird to see. > which is fine on the positive side but it's hard to describe the > results for negative months as anything but wacko. The v2 patch > gives > > regression=# select n, extract(quarter from interval '1 mon' * n) from generate_series(-12,12) n; > n | extract > -----+--------- > -12 | -1 > -11 | -4 > -10 | -4 > -9 | -4 > -8 | -3 > -7 | -3 > -6 | -3 > -5 | -2 > -4 | -2 > -3 | -2 > -2 | -1 > -1 | -1 > 0 | 1 > 1 | 1 > 2 | 1 > 3 | 2 > 4 | 2 > 5 | 2 > 6 | 3 > 7 | 3 > 8 | 3 > 9 | 4 > 10 | 4 > 11 | 4 > 12 | 1 > (25 rows) > > which is a whole lot saner. So let's run with v2. Yes, that v2 output looks very clean. I had to really dig my head into this so I am not surprised it was confusing to find the right solution. -- Bruce Momjian <bruce@momjian.us> https://momjian.us EDB https://enterprisedb.com Only you can decide what is important to you.
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix extraction of week and quarter fields from intervals.
- 6be39d77a70d 18.0 landed
-
Doc: improve explanation of type interval, especially extract().
- fcd210d496da 17.0 landed
- ebf52e9b7532 14.12 landed
- eb1d008a7a18 13.15 landed
- 6d03e8109250 15.7 landed
- 3ad319b8cad4 16.3 landed