BUG #18481: BIGINT Out of Range Error When Selecting Data

Started by PG Bug reporting formalmost 2 years ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 18481
Logged by: Wenking Deng
Email address: dengwenking@gmail.com
PostgreSQL version: 16.0
Operating system: Ubuntu
Description:

Create the table and insert the values:

CREATE TABLE t0 (c_0 BIGINT, c_1 BIGINT, c_2 BIGINT);
INSERT INTO t0 VALUES (-9223372036854775808, 145477110, 0);

Then I executed the following query:

SELECT t0.c_1
FROM t0
WHERE (t0.c_2 <> t0.c_0 * t0.c_1 AND t0.c_0 = -9223372036854775808)
AND t0.c_1 = 145477110;

Expected Behavior:
The query should return: 145477110

Actual Behavior:
The query results in an error: ERROR: bigint out of range

#2Guillaume Lelarge
guillaume@lelarge.info
In reply to: PG Bug reporting form (#1)
Re: BUG #18481: BIGINT Out of Range Error When Selecting Data

Hi,

Le lun. 27 mai 2024 à 17:57, PG Bug reporting form <noreply@postgresql.org>
a écrit :

The following bug has been logged on the website:

Bug reference: 18481
Logged by: Wenking Deng
Email address: dengwenking@gmail.com
PostgreSQL version: 16.0
Operating system: Ubuntu
Description:

Create the table and insert the values:

CREATE TABLE t0 (c_0 BIGINT, c_1 BIGINT, c_2 BIGINT);
INSERT INTO t0 VALUES (-9223372036854775808, 145477110, 0);

Then I executed the following query:

SELECT t0.c_1
FROM t0
WHERE (t0.c_2 <> t0.c_0 * t0.c_1 AND t0.c_0 = -9223372036854775808)
AND t0.c_1 = 145477110;

Expected Behavior:
The query should return: 145477110

Actual Behavior:
The query results in an error: ERROR: bigint out of range

PostgreSQL is correct. Multiplying c_0 and c_1 gives a result bigger than a
bigint, hence the error.

--
Guillaume.