Bad value for type int - Mailing list pgsql-jdbc

From Gabriel E. Sánchez Martínez
Subject Bad value for type int
Date
Msg-id 55C80783.70703@gmail.com
Whole thread Raw
Responses Re: Bad value for type int  ("Gabriel E. Sánchez Martínez"<gabrielesanchez@gmail.com>)
List pgsql-jdbc
Hello everyone,

Is there a known bug that makes the postgres JDBC driver treat long
variables as int variables, in the context of prepared statements?

I am getting the following error:

org.postgresql.util.PSQLException: Bad value for type int : 2759496100

while executing a prepared statement with the following Java code:

         StringBuilder sb = new StringBuilder();
         sb.append("SELECT * FROM table ");
         sb.append("WHERE timestamp BETWEEN ? AND ? ");
         sb.append("AND id IN ( ");
         for (int i = 0; i < ids.size() - 1; i++) {
             sb.append("?, ");
         }
         sb.append("? );");
         final String query = sb.toString();

         try (Connection c = db.getConnection()) {
             PreparedStatement p = c.prepareStatement(query);
             p.setDate(1, new java.sql.Date(startDate.getTime()));
             p.setDate(2, new java.sql.Date(endDate.getTime()));

             for (int i = 0; i < ids.size(); i++) {
                 int arg = 3 + i;
                 long id = ids.get(i);
                 p.setLong(arg, id);
             }

             ResultSet r = p.executeQuery();

This code is being executed by tomcat7 on Ubuntu 14.04, and I am using
the current version of the driver, 9.4-1201.  The query executes well on
pgAdmin in all cases, and in tomcat7 only when all the long ids are in
the int range.

Help will be greatly appreciated!

Regards,
Gabriel



pgsql-jdbc by date:

Previous
From: Prasanth Reddy
Date:
Subject: Re: Fwd: Re: Re: Postgresql 9.4.4 - ERROR: invalid byte sequence for encoding "UTF8": 0x92
Next
From: "Gabriel E. Sánchez Martínez"
Date:
Subject: Re: Bad value for type int