From da631e931f9da4bc5df4bfd39f0c42684adfb8e5 Mon Sep 17 00:00:00 2001
From: Barry Lind <barry@xythos.com>
Date: Tue, 26 Mar 2002 06:33:21 +0000
Subject: [PATCH] applied patch submitted by Florian (mailing-list@urbanet.ch)
 for BigDecimal support

---
 .../jdbc/org/postgresql/jdbc1/PreparedStatement.java       | 7 ++++++-
 src/interfaces/jdbc/org/postgresql/jdbc2/Array.java        | 2 +-
 .../jdbc/org/postgresql/jdbc2/PreparedStatement.java       | 4 ++++
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java b/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java
index 31bbaf2eece..7084887cfd7 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java
@@ -243,7 +243,12 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
 	 */
 	public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException
 	{
-		set(parameterIndex, x.toString());
+		if (x == null)
+			setNull(parameterIndex, Types.OTHER);
+		else
+		{
+		    set(parameterIndex, x.toString());
+		}
 	}
 
 	/*
diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/Array.java b/src/interfaces/jdbc/org/postgresql/jdbc2/Array.java
index f68106ee7b6..75391411527 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc2/Array.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc2/Array.java
@@ -140,7 +140,7 @@ public class Array implements java.sql.Array
 			case Types.NUMERIC:
 				retVal = new BigDecimal[ count ];
 				for ( ; count > 0; count-- )
-					((BigDecimal[])retVal)[i] = ResultSet.toBigDecimal( arrayContents[(int)index++], 0 );
+					((BigDecimal[])retVal)[i++] = ResultSet.toBigDecimal( arrayContents[(int)index++], 0 );
 				break;
 			case Types.REAL:
 				retVal = new float[ count ];
diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java b/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java
index 49c5f2da804..d0c07718bdb 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java
@@ -251,7 +251,11 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
 	 */
 	public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException
 	{
+	    if (x == null) {
+		setNull(parameterIndex, Types.OTHER);
+            } else {
 		set(parameterIndex, x.toString());
+	    }
 	}
 
 	/*
-- 
GitLab