Re: BUG #18348: Inconsistency with EXTRACT([field] from INTERVAL); - Mailing list pgsql-bugs

From Bruce Momjian
Subject Re: BUG #18348: Inconsistency with EXTRACT([field] from INTERVAL);
Date
Msg-id Zr97Pqkx9J_BbZHt@momjian.us
Whole thread Raw
In response to Re: BUG #18348: Inconsistency with EXTRACT([field] from INTERVAL);  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
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.



pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #18348: Inconsistency with EXTRACT([field] from INTERVAL);
Next
From: Alvaro Herrera
Date:
Subject: Re: REINDEX INDEX pg_catalog.pg_default_acl_role_nsp_obj_index stuck waiting for transaction from the future in PG 13.16