pg.ddx.io  pgsql-bugs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: mats@timescale.com
Subject: BUG #17876: Function width_bucket() for float8 input returns value out of range
Date: Wed, 29 Mar 2023 08:11:54 +0000
Message-ID: <17876-61f280d1601f978d@postgresql.org> (raw)

The following bug has been logged on the website:

Bug reference:      17876
Logged by:          Mats Kindahl
Email address:      mats@timescale.com
PostgreSQL version: 15.2
Operating system:   All
Description:        

On 64-bit platforms, the existing width_bucket() computation can
result in a NaN (0x8000000) if the difference between the `operand`,
`low`, or `high` parameters exceeds DBL_MAX. This is then cast to the
value -2147483648.

    mats=# WITH sample(operand, low, high, cnt) AS (
      VALUES 
	(10.5::float8, -1.797e+308::float8, 1.797e+308::float8, 1::int4),
	(10.5::float8, -1.797e+308::float8, 1.797e+308::float8, 2),
	(10.5::float8, -1.797e+308::float8, 1.797e+308::float8, 3),

	(1.797e+308::float8 / 2, -1.797e+308::float8, 1.797e+308::float8, 10),
	(-1.797e+308::float8 / 2, -1.797e+308::float8, 1.797e+308::float8, 10),

	(1.797e+308::float8 / 2, -1.797e+308::float8, 1.797e+308::float8, 16),
	(-1.797e+308::float8 / 2, -1.797e+308::float8, 1.797e+308::float8, 16),

	(1.797e+308::float8, -1.797e+308::float8 / 2, 1.797e+308::float8 / 2,
10),
	(-1.797e+308::float8, -1.797e+308::float8 / 2, 1.797e+308::float8 / 2,
10)
    ) SELECT width_bucket(operand, low, high, cnt) FROM sample;
     width_bucket 
    --------------
		1
      -2147483648
      -2147483648
      -2147483648
      -2147483648
      -2147483648
      -2147483648
	       11
		0
    (9 rows)



view thread (9+ messages)  latest in thread

Message-ID: <17876-61f280d1601f978d@postgresql.org>
Permalink:  ../17876-61f280d1601f978d@postgresql.org/
Also on:    postgresql.org/message-id/17876-61f280d1601f978d@postgresql.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-bugs@postgresql.org
  Cc: noreply@postgresql.org, pgsql-bugs@lists.postgresql.org, mats@timescale.com
  Subject: Re: BUG #17876: Function width_bucket() for float8 input returns value out of range
  In-Reply-To: <17876-61f280d1601f978d@postgresql.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox