summaryrefslogtreecommitdiff
path: root/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
diff options
context:
space:
mode:
authorDave Cramer <davec@fastcrypt.com>2003-06-30 21:10:55 +0000
committerDave Cramer <davec@fastcrypt.com>2003-06-30 21:10:55 +0000
commitdf08f5c0030590980a203b72cdfdba817ff95b30 (patch)
treeec2e0a64ab23e3876b76e1d768a0e026ea4b9fee /src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
parentede1734cf885854ff63a65ed04ae3a3a577d072e (diff)
downloadpostgresql-df08f5c0030590980a203b72cdfdba817ff95b30.tar.gz
patches by Kim Ho to fix
getByte, getSort if input has decimal or whitespace setObject if object is a BIT boolean not on list of SQLKeywords
Diffstat (limited to 'src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java')
-rw-r--r--src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java36
1 files changed, 35 insertions, 1 deletions
diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
index ee1db017cf..5f10f11046 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java
@@ -9,7 +9,7 @@
* Copyright (c) 2003, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1ResultSet.java,v 1.12 2003/05/03 20:40:45 barry Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1ResultSet.java,v 1.13 2003/06/30 21:10:55 davec Exp $
*
*-------------------------------------------------------------------------
*/
@@ -189,6 +189,19 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
{
try
{
+ switch(fields[columnIndex-1].getSQLType())
+ {
+ case Types.NUMERIC:
+ case Types.REAL:
+ case Types.DOUBLE:
+ case Types.FLOAT:
+ case Types.DECIMAL:
+ s = (s.indexOf(".")==-1) ? s : s.substring(0,s.indexOf("."));
+ break;
+ case Types.CHAR:
+ s = s.trim();
+ break;
+ }
return Byte.parseByte(s);
}
catch (NumberFormatException e)
@@ -207,6 +220,19 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
{
try
{
+ switch(fields[columnIndex-1].getSQLType())
+ {
+ case Types.NUMERIC:
+ case Types.REAL:
+ case Types.DOUBLE:
+ case Types.FLOAT:
+ case Types.DECIMAL:
+ s = (s.indexOf(".")==-1) ? s : s.substring(0,s.indexOf("."));
+ break;
+ case Types.CHAR:
+ s = s.trim();
+ break;
+ }
return Short.parseShort(s);
}
catch (NumberFormatException e)
@@ -778,6 +804,7 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
{
try
{
+ s = s.trim();
return Integer.parseInt(s);
}
catch (NumberFormatException e)
@@ -794,6 +821,7 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
{
try
{
+ s = s.trim();
return Long.parseLong(s);
}
catch (NumberFormatException e)
@@ -811,6 +839,7 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
{
try
{
+ s = s.trim();
val = new BigDecimal(s);
}
catch (NumberFormatException e)
@@ -837,6 +866,7 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
{
try
{
+ s = s.trim();
return Float.valueOf(s).floatValue();
}
catch (NumberFormatException e)
@@ -853,6 +883,7 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
{
try
{
+ s = s.trim();
return Double.valueOf(s).doubleValue();
}
catch (NumberFormatException e)
@@ -871,6 +902,7 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
// length > 10: SQL Timestamp, assumes PGDATESTYLE=ISO
try
{
+ s = s.trim();
return java.sql.Date.valueOf((s.length() == 10) ? s : s.substring(0, 10));
}
catch (NumberFormatException e)
@@ -885,6 +917,7 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
return null; // SQL NULL
try
{
+ s = s.trim();
if (s.length() == 8)
{
//value is a time value
@@ -952,6 +985,7 @@ public abstract class AbstractJdbc1ResultSet implements BaseResultSet
if (s == null)
return null;
+ s = s.trim();
// We must be synchronized here incase more theads access the ResultSet
// bad practice but possible. Anyhow this is to protect sbuf and
// SimpleDateFormat objects