Hello
a customer got the exception "org.postgresql.util.PSQLException: ERROR:
value out of range: underflow" without any stacktrace etc.
System is Linux with PG 12.2
Once I got a similar error in Oracle so I checked double values for edge
cases (see below) but without success. This message is also not part of
pgjdbc.
Has anyone any idea where this message may originate from? The only used
datatypes for numbers are bigint, integer and double precision.
Thanks
Thomas
Test:
try (Statement s = c.createStatement()) {
s.executeUpdate("create table x (x double precision)");
}
try (PreparedStatement p = c.prepareStatement("insert into x (x) values
(?)")) {
p.setDouble(1, Double.MIN_VALUE);
p.executeUpdate();
p.setDouble(1, -Double.MIN_VALUE);
p.executeUpdate();
p.setDouble(1, Double.MIN_NORMAL);
p.executeUpdate();
p.setDouble(1, -Double.MIN_NORMAL);
p.executeUpdate();
p.setDouble(1, Double.MAX_VALUE);
p.executeUpdate();
p.setDouble(1, -Double.MAX_VALUE);
p.executeUpdate();
p.setDouble(1, Double.NEGATIVE_INFINITY);
p.executeUpdate();
p.setDouble(1, Double.POSITIVE_INFINITY);
p.executeUpdate();
p.setDouble(1, Double.NaN);
p.executeUpdate();
}