Обсуждение: ResultSet.getObject return type for smallint

Поиск
Список
Период
Сортировка

ResultSet.getObject return type for smallint

От
"Kevin Grittner"
Дата:
According to Appendix B of the JDBC spec, ResultSet.getObject should use the mapping shown in table B-3 to determine the object class returned.  Table B-3 shows SMALLINT mapping to Integer.  In postgresql-jdbc-8.0-311 a Short is returned instead, which is causing problems for our software.  It looks like a one-line change will fix this -- in the org.postgresql.jdbc2.AbstractJdbc2ResultSet.internalGetObject method.
 
Index: AbstractJdbc2ResultSet.java
===================================================================
RCS file: /usr/local/cvsroot/pgjdbc/pgjdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java,v
retrieving revision 1.74
diff -u -r1.74 AbstractJdbc2ResultSet.java
--- AbstractJdbc2ResultSet.java8 May 2005 23:50:56 -00001.74
+++ AbstractJdbc2ResultSet.java7 Jun 2005 22:53:02 -0000
@@ -115,7 +115,7 @@
         case Types.BIT:
             return getBoolean(columnIndex) ? Boolean.TRUE : Boolean.FALSE;
         case Types.SMALLINT:
-            return new Short(getShort(columnIndex));
+            return new Integer(getShort(columnIndex));
         case Types.INTEGER:
             return new Integer(getInt(columnIndex));
         case Types.BIGINT:
 

Re: ResultSet.getObject return type for smallint

От
Oliver Jowett
Дата:
Kevin Grittner wrote:
>
> According to Appendix B of the JDBC spec, ResultSet.getObject should use
> the mapping shown in table B-3 to determine the object class returned.
>  Table B-3 shows SMALLINT mapping to Integer.  In
> postgresql-jdbc-8.0-311 a Short is returned instead, which is causing
> problems for our software.  It looks like a one-line change will fix
> this -- in the
> org.postgresql.jdbc2.AbstractJdbc2ResultSet.internalGetObject method.

Thanks for the report. I've applied a fix for this, plus support for
various other types in the mapping table that getObject() didn't handle
at all (BOOLEAN, TINYINT, DECIMAL, LONGVARCHAR, LONGVARBINARY, CLOB,
BLOB) to CVS HEAD and the stable 8.0 branch.

-O