From d06384c6d75742f88d4b1e21e68b28dc71116320 Mon Sep 17 00:00:00 2001 From: Kris Jurka Date: Thu, 21 Oct 2004 19:13:55 +0000 Subject: [PATCH] Correctly cast the return value of a CallableStatement when getShort is called. getByte presents a can't happen situation as no function can return a TINYINT because pg doesn't have an equivalent type. Make this throw an exception if we get to this point. Thanks to Christian Niles. --- .../postgresql/jdbc1/AbstractJdbc1Statement.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java index f4ad4763eb7..833a12b83e8 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java @@ -26,7 +26,7 @@ import java.sql.Timestamp; import java.sql.Types; import java.util.Vector; -/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1Statement.java,v 1.41.2.7 2004/09/13 08:02:41 jurka Exp $ +/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1Statement.java,v 1.41.2.8 2004/10/21 19:13:55 jurka Exp $ * This class defines methods of the jdbc1 specification. This class is * extended by org.postgresql.jdbc2.AbstractJdbc2Statement which adds the jdbc2 * methods. The real Statement class (for jdbc1) is org.postgresql.jdbc1.Jdbc1Statement @@ -1864,9 +1864,12 @@ public abstract class AbstractJdbc1Statement implements BaseStatement public byte getByte(int parameterIndex) throws SQLException { checkIndex (parameterIndex, Types.TINYINT, "Byte"); - if (callResult == null) - return 0; - return (byte)((Integer)callResult).intValue (); + // We expect the above checkIndex call to fail because + // we don't have an equivalent pg type for TINYINT. + // Possibly "char" (not char(N)), could be used, but + // for the moment we just bail out. + // + throw new PSQLException("postgresql.unusual", PSQLState.UNEXPECTED_ERROR); } /* @@ -1881,7 +1884,7 @@ public abstract class AbstractJdbc1Statement implements BaseStatement checkIndex (parameterIndex, Types.SMALLINT, "Short"); if (callResult == null) return 0; - return (short)((Integer)callResult).intValue (); + return (short)((Short)callResult).intValue (); }