summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKris Jurka2004-10-21 19:13:55 +0000
committerKris Jurka2004-10-21 19:13:55 +0000
commitd06384c6d75742f88d4b1e21e68b28dc71116320 (patch)
treebb324b662baa8ec29746f17483ede2b9174e827a
parent62a6019c495d617679b074142bc09812d4cbaf7d (diff)
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.
-rw-r--r--src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java13
1 files 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 ();
}