From 31a925c4d07675bc098a742ee9ca642ec79a40ee Mon Sep 17 00:00:00 2001 From: "Marc G. Fournier" Date: Sun, 15 Mar 1998 07:12:07 +0000 Subject: [PATCH] From: Peter T Mount Ok, this fixes three things: 1. It seems (from tests submitted by two people with JBuilder) that JBuilder expects a responce from ResultSetMetaData.getPrecision() & getScale() when used on non numeric types. This patch makes these methods return 0, instead of throwing an exception. 2. Fixes a small bug where getting the postgresql type name returns null. 3. Fixes a problem with ResultSet.getObject() where getting it's string value returns null if you case the object as (PGobject), but returns the value if you case it as it's self. --- src/interfaces/jdbc/postgresql/Field.java | 3 ++- src/interfaces/jdbc/postgresql/ResultSetMetaData.java | 4 ++-- src/interfaces/jdbc/postgresql/util/PGobject.java | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/interfaces/jdbc/postgresql/Field.java b/src/interfaces/jdbc/postgresql/Field.java index 78553dd32e..dd8918e99b 100644 --- a/src/interfaces/jdbc/postgresql/Field.java +++ b/src/interfaces/jdbc/postgresql/Field.java @@ -58,7 +58,8 @@ public class Field if (result.getColumnCount() != 1 || result.getTupleCount() != 1) throw new SQLException("Unexpected return from query for type"); result.next(); - sql_type = getSQLType(result.getString(1)); + type_name = result.getString(1); + sql_type = getSQLType(type_name); result.close(); } return sql_type; diff --git a/src/interfaces/jdbc/postgresql/ResultSetMetaData.java b/src/interfaces/jdbc/postgresql/ResultSetMetaData.java index c4e54dbefa..fefd3bafdc 100644 --- a/src/interfaces/jdbc/postgresql/ResultSetMetaData.java +++ b/src/interfaces/jdbc/postgresql/ResultSetMetaData.java @@ -266,7 +266,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData case Types.DOUBLE: return 16; default: - throw new SQLException("no precision for non-numeric data types."); + return 0; } } @@ -295,7 +295,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData case Types.DOUBLE: return 16; default: - throw new SQLException("no scale for non-numeric data types"); + return 0; } } diff --git a/src/interfaces/jdbc/postgresql/util/PGobject.java b/src/interfaces/jdbc/postgresql/util/PGobject.java index 62b3d55f5e..40e4daf435 100644 --- a/src/interfaces/jdbc/postgresql/util/PGobject.java +++ b/src/interfaces/jdbc/postgresql/util/PGobject.java @@ -97,6 +97,6 @@ public class PGobject implements Serializable,Cloneable */ public String toString() { - return value; + return getValue(); } }