From: Bruce Momjian Date: Mon, 11 Jun 2001 22:12:00 +0000 (+0000) Subject: Got two patches that were found by folks on the Castor list, that we'd like to X-Git-Tag: REL7_2_BETA1~1060 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8af0ea9dc137d39f44d40c7b5246f24f06c3a03d;p=postgresql Got two patches that were found by folks on the Castor list, that we'd like to submit. These were done for the jdbc2 driver. The first one is for support of the Types.BIT in the PreparedStatement class. The following lines need to be inserted in the switch statment, at around line 530: (Prepared statment, line 554, before the default: switch case Types.BIT: if (x instanceof Boolean) { set(parameterIndex, ((Boolean)x).booleanValue() ? "TRUE" : "FALSE"); } else { throw new PSQLException("postgresql.prep.type"); } break; The second one is dealing with blobs, inserted in PreparedStatemant.java (After previous patch line, 558): case Types.BINARY: case Types.VARBINARY: setObject(parameterIndex,x); break; and in ResultSet.java (Around line 857): case Types.BINARY: case Types.VARBINARY: return getBytes(columnIndex); Ned Wolpert --- diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java b/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java index 84efeb09a0..e4c50f13af 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc1/PreparedStatement.java @@ -489,6 +489,17 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta case Types.TIMESTAMP: setTimestamp(parameterIndex, (Timestamp)x); break; + case Types.BIT: + if (x instanceof Boolean) { + set(parameterIndex, ((Boolean)x).booleanValue() ? "TRUE" : "FALSE"); + } else { + throw new PSQLException("postgresql.prep.type"); + } + break; + case Types.BINARY: + case Types.VARBINARY: + setObject(parameterIndex,x); + break; case Types.OTHER: setString(parameterIndex, ((PGobject)x).getValue()); break; diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/ResultSet.java b/src/interfaces/jdbc/org/postgresql/jdbc1/ResultSet.java index 98af07b0b6..bfbded0f01 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc1/ResultSet.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc1/ResultSet.java @@ -806,6 +806,9 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu return getTime(columnIndex); case Types.TIMESTAMP: return getTimestamp(columnIndex); + case Types.BINARY: + case Types.VARBINARY: + return getBytes(columnIndex); default: return connection.getObject(field.getTypeName(), getString(columnIndex)); } diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java b/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java index f204490533..af73fee362 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc2/PreparedStatement.java @@ -549,6 +549,17 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta case Types.TIMESTAMP: setTimestamp(parameterIndex, (Timestamp)x); break; + case Types.BIT: + if (x instanceof Boolean) { + set(parameterIndex, ((Boolean)x).booleanValue() ? "TRUE" : "FALSE"); + } else { + throw new PSQLException("postgresql.prep.type"); + } + break; + case Types.BINARY: + case Types.VARBINARY: + setObject(parameterIndex,x); + break; case Types.OTHER: setString(parameterIndex, ((PGobject)x).getValue()); break; diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java b/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java index 81605deec8..5bf11e3c3e 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java @@ -855,6 +855,9 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu return getTime(columnIndex); case Types.TIMESTAMP: return getTimestamp(columnIndex); + case Types.BINARY: + case Types.VARBINARY: + return getBytes(columnIndex); default: return connection.getObject(field.getTypeName(), getString(columnIndex)); }