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: jian he <jian.universality@gmail.com>
Cc: 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-02-20T19:42:30Z
Lists: pgsql-bugs, pgsql-hackers
jian he <jian.universality@gmail.com> writes: > On Sun, Feb 18, 2024 at 2:14 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: >> (Parenthetically, one case that perhaps is surprising is >> ERROR: unit "week" not supported for type interval >> Why not just return the day field divided by 7?) > seems pretty simple? Hm, maybe, but does this behave desirably for zero or negative days? > So in section 9.9.1. EXTRACT, date_part > we may need to document extract(quarter from interval) case. > intervals can be negative, which will make the issue more complicated. > except the "quarter" field , EXTRACT other fields from intervals, the > output seems sane. Yeah, I see what you mean: the output for negative month counts is very bizarre, whereas other fields seem to all produce the negative of what they'd produce for the absolute value of the interval. We could either try to fix that or decide that rejecting "quarter" for intervals is the saner answer. I went ahead and pushed the docs changes after adding more explicit descriptions of interval's behavior for the field types where it seemed important. If we make any changes to the behavior for week or quarter fields, ISTM that should be a HEAD-only change. 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 →
-
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