From: | Ivan Petrov <capacytron(at)gmail(dot)com> |
---|---|
To: | Sehrope Sarkuni <sehrope(at)jackdb(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-jdbc(at)lists(dot)postgresql(dot)org |
Subject: | Re: Bad value for type BigDecimal : Infinity |
Date: | 2021-07-10 09:36:20 |
Message-ID: | CAEARqsEZ28BZMfgvJD2j12XuB0fM+CDK9vp0xYy9mamyNZ1TPw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin pgsql-jdbc |
Got it, thank you.
пт, 9 июл. 2021 г. в 14:53, Sehrope Sarkuni <sehrope(at)jackdb(dot)com>:
> Ivan Petrov <capacytron(at)gmail(dot)com> writes:
>> > Hi, I'm using postgres JDBC driver version 42.2.23
>> > https://mvnrepository.com/artifact/org.postgresql/postgresql/42.2.23
>> > Here is my exception
>>
>> > Bad value for type BigDecimal : Infinity; nested exception is
>> > org.postgresql.util.PSQLException: Bad value for type BigDecimal :
>> Infinity
>> > ...
>> > Caused by: org.postgresql.util.PSQLException: Bad value for type
>> BigDecimal
>> > : Infinity
>> > at org.postgresql.jdbc.PgResultSet.toBigDecimal(PgResultSet.java:3064)
>> > at org.postgresql.jdbc.PgResultSet.toBigDecimal(PgResultSet.java:3073)
>> > at org.postgresql.jdbc.PgResultSet.getNumeric(PgResultSet.java:2491)
>>
>
> On Thu, Jul 8, 2021 at 3:45 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
>> I dunno, does BigDecimal have a concept of infinity? If not, this
>> doesn't seem like something the driver can avoid for you. If it
>> does, then something needs to be updated to be aware that PG now
>> supports infinities in type numeric.
>>
>
> No, there's no way to represent +/- Infinity with a BigDecimal in Java and
> the driver does not have a way to deal with those values.
>
> To read those columns, you have to call ResultSet.getString(...) and
> inspect that value before retrieving it as a BigDecimal.
>
> Because of the automatic type conversions, you can run into this same
> issue if you call ResultSet.getBigDecimal(...) on a float column that has
> that a +/- Infinity value.
>
> It's the same issue with retrieving 'NaN'::numeric as a BigDecimal. You'll
> get an exception as the Java type does not have a representation.
>
> If there's a chance the values cannot be represented as BigDecimal you'll
> have to fetch the String value and then go from there.
>
> Regards,
> -- Sehrope Sarkuni
> Founder & CEO | JackDB, Inc. | https://www.jackdb.com/
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Ilmir Mulyukov | 2021-07-12 05:24:21 | Lc_collate & lc_type? whitespace and nbsp unique index... |
Previous Message | Sehrope Sarkuni | 2021-07-09 13:52:48 | Re: Bad value for type BigDecimal : Infinity |
From | Date | Subject | |
---|---|---|---|
Next Message | xpoinsard | 2021-07-16 17:39:46 | [pgjdbc/pgjdbc] 67fc98: Update socket connection description (#2214) |
Previous Message | Sehrope Sarkuni | 2021-07-09 13:52:48 | Re: Bad value for type BigDecimal : Infinity |