postgresql-jdbc.git / summary / log / commit / refs
commit 5bfa2e7a6fbed366c77ff45c79aba29522bdae8c
Author: Kris Jurka <books@ejurka.com>
Date: Tue Sep 30 04:34:51 2008 +0000
Map the database uuid type to java.util.UUID. This only works for
relatively new server (8.3) and JDK (1.5) versions.
build.xml | 3 +-
org/postgresql/Driver.java.in | 11 ++++-
org/postgresql/core/Oid.java | 4 +-
org/postgresql/jdbc2/AbstractJdbc2ResultSet.java | 14 +++++-
org/postgresql/jdbc2/AbstractJdbc2Statement.java | 4 +-
org/postgresql/jdbc2/TypeInfoCache.java | 53 +++++++++++++---------
org/postgresql/jdbc3g/AbstractJdbc3gResultSet.java | 44 ++++++++++++++++++
org/postgresql/jdbc3g/AbstractJdbc3gStatement.java | 41 +++++++++++++++++
org/postgresql/jdbc3g/Jdbc3gResultSet.java | 4 +-
org/postgresql/jdbc3g/Jdbc3gStatement.java | 4 +-
org/postgresql/jdbc4/AbstractJdbc4ResultSet.java | 4 +-
org/postgresql/jdbc4/AbstractJdbc4Statement.java | 4 +-
org/postgresql/test/jdbc4/Jdbc4TestSuite.java | 19 +++++++-
13 files changed, 172 insertions(+), 37 deletions(-)
diff --git a/build.xml b/build.xml
index d4e66bb1..5fea586a 100644
--- a/build.xml
+++ b/build.xml
@@ -8,7 +8,7 @@
This file now requires Ant 1.4.1. 2002-04-18
- $PostgreSQL: pgjdbc/build.xml,v 1.80 2008/02/19 05:31:48 jurka Exp $
+ $PostgreSQL: pgjdbc/build.xml,v 1.81 2008/09/30 03:42:47 jurka Exp $
-->
@@ -262,6 +262,7 @@
<filter token="SIMPLE_DS_CLASS" value="${simpledsclass}" />
<filter token="POOLED_CONN_CLASS" value="${pooledconnclass}" />
<filter token="DEF_PGPORT" value="${def_pgport}" />
+ <filter token="JAVAVERSION" value="${java.specification.version}" />
<fail unless="major" message="'major' undefined. Please follow the directions in README."/>
<fail unless="minor" message="'minor' undefined. Please follow the directions in README."/>
diff --git a/org/postgresql/Driver.java.in b/org/postgresql/Driver.java.in
index 90f1b0d9..b9becfca 100644
--- a/org/postgresql/Driver.java.in
+++ b/org/postgresql/Driver.java.in
@@ -3,7 +3,7 @@
* Copyright (c) 2003-2008, PostgreSQL Global Development Group
*
* IDENTIFICATION
-* $PostgreSQL: pgjdbc/org/postgresql/Driver.java.in,v 1.73 2008/04/13 16:03:49 jurka Exp $
+* $PostgreSQL: pgjdbc/org/postgresql/Driver.java.in,v 1.74 2008/09/30 03:42:48 jurka Exp $
*
*-------------------------------------------------------------------------
*/
@@ -518,6 +518,15 @@ public class Driver implements java.sql.Driver
return "@VERSION@ (build " + PSQLDriverVersion.buildNumber + ")";
}
+ /**
+ * Returns the java.specification.version that the JDBC driver was
+ * built with. For example: "1.5".
+ */
+ public static String getJavaBuildVersion()
+ {
+ return "@JAVAVERSION";
+ }
+
/**
* Report whether the driver is a genuine JDBC compliant driver. A
* driver may only report "true" here if it passes the JDBC compliance
diff --git a/org/postgresql/core/Oid.java b/org/postgresql/core/Oid.java
index 24e34e20..07455ded 100644
--- a/org/postgresql/core/Oid.java
+++ b/org/postgresql/core/Oid.java
@@ -3,7 +3,7 @@
* Copyright (c) 2004-2008, PostgreSQL Global Development Group
*
* IDENTIFICATION
-* $PostgreSQL: pgjdbc/org/postgresql/core/Oid.java,v 1.12 2007/12/01 08:28:58 jurka Exp $
+* $PostgreSQL: pgjdbc/org/postgresql/core/Oid.java,v 1.13 2008/01/08 06:56:27 jurka Exp $
*
*-------------------------------------------------------------------------
*/
@@ -62,5 +62,7 @@ public class Oid {
public static final int CHAR_ARRAY = 1002;
public static final int VARBIT = 1562;
public static final int VARBIT_ARRAY = 1563;
+ public static final int UUID = 2950;
+ public static final int UUID_ARRAY = 2951;
}
diff --git a/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java b/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java
index bff107cc..300425db 100644
--- a/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java
+++ b/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java
@@ -3,7 +3,7 @@
* Copyright (c) 2003-2008, PostgreSQL Global Development Group
*
* IDENTIFICATION
-* $PostgreSQL: pgjdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java,v 1.103 2008/02/20 17:17:08 jurka Exp $
+* $PostgreSQL: pgjdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java,v 1.104 2008/04/15 04:23:57 jurka Exp $
*
*-------------------------------------------------------------------------
*/
@@ -162,6 +162,9 @@ public abstract class AbstractJdbc2ResultSet implements BaseResultSet, org.postg
if (type.equals("unknown"))
return getString(columnIndex);
+ if (type.equals("uuid"))
+ return getUUID(getString(columnIndex));
+
// Specialized support for ref cursors is neater.
if (type.equals("refcursor"))
{
@@ -2867,6 +2870,15 @@ public abstract class AbstractJdbc2ResultSet implements BaseResultSet, org.postg
updateValues.put(fields[columnIndex - 1].getColumnName(connection), value);
}
+ /**
+ * Newer JVMs will return a java.util.UUID object, but it isn't
+ * available in older versions.
+ */
+ protected Object getUUID(String data) throws SQLException
+ {
+ return data;
+ }
+
private class PrimaryKey
{
int index; // where in the result set is this primaryKey
diff --git a/org/postgresql/jdbc2/AbstractJdbc2Statement.java b/org/postgresql/jdbc2/AbstractJdbc2Statement.java
index 80553bc6..427b2c21 100644
--- a/org/postgresql/jdbc2/AbstractJdbc2Statement.java
+++ b/org/postgresql/jdbc2/AbstractJdbc2Statement.java
@@ -3,7 +3,7 @@
* Copyright (c) 2004-2008, PostgreSQL Global Development Group
*
* IDENTIFICATION
-* $PostgreSQL: pgjdbc/org/postgresql/jdbc2/AbstractJdbc2Statement.java,v 1.109 2008/04/02 17:05:56 jurka Exp $
+* $PostgreSQL: pgjdbc/org/postgresql/jdbc2/AbstractJdbc2Statement.java,v 1.110 2008/04/15 04:23:57 jurka Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2098,7 +2098,7 @@ public abstract class AbstractJdbc2Statement implements BaseStatement
* most calls to this method do not require escaping as the source
* of the string is known safe (i.e. Integer.toString())
*/
- private void bindLiteral(int paramIndex, String s, int oid) throws SQLException
+ protected void bindLiteral(int paramIndex, String s, int oid) throws SQLException
{
if(adjustIndex)
paramIndex--;
diff --git a/org/postgresql/jdbc2/TypeInfoCache.java b/org/postgresql/jdbc2/TypeInfoCache.java
index 7f3da180..5e38f341 100644
--- a/org/postgresql/jdbc2/TypeInfoCache.java
+++ b/org/postgresql/jdbc2/TypeInfoCache.java
@@ -3,7 +3,7 @@
* Copyright (c) 2005-2008, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgjdbc/org/postgresql/jdbc2/TypeInfoCache.java,v 1.14 2008/04/15 04:49:59 jurka Exp $
+ * $PostgreSQL: pgjdbc/org/postgresql/jdbc2/TypeInfoCache.java,v 1.15 2008/04/15 05:22:12 jurka Exp $
*
*-------------------------------------------------------------------------
*/
@@ -18,6 +18,7 @@ import java.sql.Types;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;
+import org.postgresql.Driver;
import org.postgresql.core.Oid;
import org.postgresql.core.BaseStatement;
import org.postgresql.core.BaseConnection;
@@ -60,28 +61,31 @@ public class TypeInfoCache implements TypeInfo {
// 2 - sql type
// 3 - java class
// 4 - array type oid
+ // 5 - conditional minimum server version
+ // 6 - conditional minimum JDK build version
private static final Object types[][] = {
- {"int2", new Integer(Oid.INT2), new Integer(Types.SMALLINT), "java.lang.Integer", new Integer(Oid.INT2_ARRAY)},
- {"int4", new Integer(Oid.INT4), new Integer(Types.INTEGER), "java.lang.Integer", new Integer(Oid.INT4_ARRAY)},
- {"oid", new Integer(Oid.OID), new Integer(Types.BIGINT), "java.lang.Long", new Integer(Oid.OID_ARRAY)},
- {"int8", new Integer(Oid.INT8), new Integer(Types.BIGINT), "java.lang.Long", new Integer(Oid.INT8_ARRAY)},
- {"money", new Integer(Oid.MONEY), new Integer(Types.DOUBLE), "java.lang.Double", new Integer(Oid.MONEY_ARRAY)},
- {"numeric", new Integer(Oid.NUMERIC), new Integer(Types.NUMERIC), "java.math.BigDecimal", new Integer(Oid.NUMERIC_ARRAY)},
- {"float4", new Integer(Oid.FLOAT4), new Integer(Types.REAL), "java.lang.Float", new Integer(Oid.FLOAT4_ARRAY)},
- {"float8", new Integer(Oid.FLOAT8), new Integer(Types.DOUBLE), "java.lang.Double", new Integer(Oid.FLOAT8_ARRAY)},
- {"char", new Integer(Oid.CHAR), new Integer(Types.CHAR), "java.lang.String", new Integer(Oid.CHAR_ARRAY)},
- {"bpchar", new Integer(Oid.BPCHAR), new Integer(Types.CHAR), "java.lang.String", new Integer(Oid.BPCHAR_ARRAY)},
- {"varchar", new Integer(Oid.VARCHAR), new Integer(Types.VARCHAR), "java.lang.String", new Integer(Oid.VARCHAR_ARRAY)},
- {"text", new Integer(Oid.TEXT), new Integer(Types.VARCHAR), "java.lang.String", new Integer(Oid.TEXT_ARRAY)},
- {"name", new Integer(Oid.NAME), new Integer(Types.VARCHAR), "java.lang.String", new Integer(Oid.NAME_ARRAY)},
- {"bytea", new Integer(Oid.BYTEA), new Integer(Types.BINARY), "[B", new Integer(Oid.BYTEA_ARRAY)},
- {"bool", new Integer(Oid.BOOL), new Integer(Types.BIT), "java.lang.Boolean", new Integer(Oid.BOOL_ARRAY)},
- {"bit", new Integer(Oid.BIT), new Integer(Types.BIT), "java.lang.Boolean", new Integer(Oid.BIT_ARRAY)},
- {"date", new Integer(Oid.DATE), new Integer(Types.DATE), "java.sql.Date", new Integer(Oid.DATE_ARRAY)},
- {"time", new Integer(Oid.TIME), new Integer(Types.TIME), "java.sql.Time", new Integer(Oid.TIME_ARRAY)},
- {"timetz", new Integer(Oid.TIMETZ), new Integer(Types.TIME), "java.sql.Time", new Integer(Oid.TIMETZ_ARRAY)},
- {"timestamp", new Integer(Oid.TIMESTAMP), new Integer(Types.TIMESTAMP), "java.sql.Timestamp", new Integer(Oid.TIMESTAMP_ARRAY)},
- {"timestamptz", new Integer(Oid.TIMESTAMPTZ), new Integer(Types.TIMESTAMP), "java.sql.Timestamp", new Integer(Oid.TIMESTAMPTZ_ARRAY)}
+ {"int2", new Integer(Oid.INT2), new Integer(Types.SMALLINT), "java.lang.Integer", new Integer(Oid.INT2_ARRAY), null, null},
+ {"int4", new Integer(Oid.INT4), new Integer(Types.INTEGER), "java.lang.Integer", new Integer(Oid.INT4_ARRAY), null, null},
+ {"oid", new Integer(Oid.OID), new Integer(Types.BIGINT), "java.lang.Long", new Integer(Oid.OID_ARRAY), null, null},
+ {"int8", new Integer(Oid.INT8), new Integer(Types.BIGINT), "java.lang.Long", new Integer(Oid.INT8_ARRAY), null, null},
+ {"money", new Integer(Oid.MONEY), new Integer(Types.DOUBLE), "java.lang.Double", new Integer(Oid.MONEY_ARRAY), null, null},
+ {"numeric", new Integer(Oid.NUMERIC), new Integer(Types.NUMERIC), "java.math.BigDecimal", new Integer(Oid.NUMERIC_ARRAY), null, null},
+ {"float4", new Integer(Oid.FLOAT4), new Integer(Types.REAL), "java.lang.Float", new Integer(Oid.FLOAT4_ARRAY), null, null},
+ {"float8", new Integer(Oid.FLOAT8), new Integer(Types.DOUBLE), "java.lang.Double", new Integer(Oid.FLOAT8_ARRAY), null, null},
+ {"char", new Integer(Oid.CHAR), new Integer(Types.CHAR), "java.lang.String", new Integer(Oid.CHAR_ARRAY), null, null},
+ {"bpchar", new Integer(Oid.BPCHAR), new Integer(Types.CHAR), "java.lang.String", new Integer(Oid.BPCHAR_ARRAY), null, null},
+ {"varchar", new Integer(Oid.VARCHAR), new Integer(Types.VARCHAR), "java.lang.String", new Integer(Oid.VARCHAR_ARRAY), null, null},
+ {"text", new Integer(Oid.TEXT), new Integer(Types.VARCHAR), "java.lang.String", new Integer(Oid.TEXT_ARRAY), null, null},
+ {"name", new Integer(Oid.NAME), new Integer(Types.VARCHAR), "java.lang.String", new Integer(Oid.NAME_ARRAY), null, null},
+ {"bytea", new Integer(Oid.BYTEA), new Integer(Types.BINARY), "[B", new Integer(Oid.BYTEA_ARRAY), null, null},
+ {"bool", new Integer(Oid.BOOL), new Integer(Types.BIT), "java.lang.Boolean", new Integer(Oid.BOOL_ARRAY), null, null},
+ {"bit", new Integer(Oid.BIT), new Integer(Types.BIT), "java.lang.Boolean", new Integer(Oid.BIT_ARRAY), null, null},
+ {"date", new Integer(Oid.DATE), new Integer(Types.DATE), "java.sql.Date", new Integer(Oid.DATE_ARRAY), null, null},
+ {"time", new Integer(Oid.TIME), new Integer(Types.TIME), "java.sql.Time", new Integer(Oid.TIME_ARRAY), null, null},
+ {"timetz", new Integer(Oid.TIMETZ), new Integer(Types.TIME), "java.sql.Time", new Integer(Oid.TIMETZ_ARRAY), null, null},
+ {"timestamp", new Integer(Oid.TIMESTAMP), new Integer(Types.TIMESTAMP), "java.sql.Timestamp", new Integer(Oid.TIMESTAMP_ARRAY), null, null},
+ {"timestamptz", new Integer(Oid.TIMESTAMPTZ), new Integer(Types.TIMESTAMP), "java.sql.Timestamp", new Integer(Oid.TIMESTAMPTZ_ARRAY), null, null},
+ {"uuid", new Integer(Oid.UUID), new Integer(Types.OTHER), "java.util.UUID", new Integer(Oid.UUID_ARRAY), "8.3", "1.5"}
};
/**
@@ -112,6 +116,11 @@ public class TypeInfoCache implements TypeInfo {
_pgArrayToPgType = new HashMap();
for (int i=0; i<types.length; i++) {
+ if (types[i][5] != null && !conn.haveMinimumServerVersion((String)types[i][5]))
+ continue;
+ if (types[i][6] != null && Driver.getJavaBuildVersion().compareTo((String)types[i][6]) < 0)
+ continue;
+
_pgNameToJavaClass.put(types[i][0], types[i][3]);
_pgNameToOid.put(types[i][0], types[i][1]);
_oidToPgName.put(types[i][1], types[i][0]);
diff --git a/org/postgresql/jdbc3g/AbstractJdbc3gResultSet.java b/org/postgresql/jdbc3g/AbstractJdbc3gResultSet.java
new file mode 100644
index 00000000..8b8ae011
--- /dev/null
+++ b/org/postgresql/jdbc3g/AbstractJdbc3gResultSet.java
@@ -0,0 +1,44 @@
+/*-------------------------------------------------------------------------
+*
+* Copyright (c) 2008, PostgreSQL Global Development Group
+*
+* IDENTIFICATION
+* $PostgreSQL$
+*
+*-------------------------------------------------------------------------
+*/
+
+package org.postgresql.jdbc3g;
+
+import java.sql.*;
+import java.util.UUID;
+import java.util.Vector;
+
+import org.postgresql.core.*;
+import org.postgresql.util.GT;
+import org.postgresql.util.PSQLState;
+import org.postgresql.util.PSQLException;
+
+public abstract class AbstractJdbc3gResultSet extends org.postgresql.jdbc3.AbstractJdbc3ResultSet
+{
+
+ public AbstractJdbc3gResultSet(Query originalQuery, BaseStatement statement, Field[] fields, Vector tuples,
+ ResultCursor cursor, int maxRows, int maxFieldSize, int rsType, int rsConcurrency, int rsHoldability) throws SQLException
+ {
+ super (originalQuery, statement, fields, tuples, cursor, maxRows, maxFieldSize, rsType, rsConcurrency, rsHoldability);
+ }
+
+
+ protected Object getUUID(String data) throws SQLException
+ {
+ UUID uuid;
+ try {
+ uuid = UUID.fromString(data);
+ } catch (java.lang.IllegalArgumentException iae) {
+ throw new PSQLException(GT.tr("Invalid UUID data."), PSQLState.INVALID_PARAMETER_VALUE, iae);
+ }
+
+ return uuid;
+ }
+}
+
diff --git a/org/postgresql/jdbc3g/AbstractJdbc3gStatement.java b/org/postgresql/jdbc3g/AbstractJdbc3gStatement.java
new file mode 100644
index 00000000..8fb72762
--- /dev/null
+++ b/org/postgresql/jdbc3g/AbstractJdbc3gStatement.java
@@ -0,0 +1,41 @@
+/*-------------------------------------------------------------------------
+*
+* Copyright (c) 2008, PostgreSQL Global Development Group
+*
+* IDENTIFICATION
+* $PostgreSQL$
+*
+*-------------------------------------------------------------------------
+*/
+
+package org.postgresql.jdbc3g;
+
+import java.sql.*;
+import java.util.UUID;
+
+import org.postgresql.core.Oid;
+import org.postgresql.jdbc3.AbstractJdbc3Connection;
+
+public abstract class AbstractJdbc3gStatement extends org.postgresql.jdbc3.AbstractJdbc3Statement
+{
+ public AbstractJdbc3gStatement (AbstractJdbc3Connection c, int rsType, int rsConcurrency, int rsHoldability) throws SQLException
+ {
+ super(c, rsType, rsConcurrency, rsHoldability);
+ }
+
+ public AbstractJdbc3gStatement(AbstractJdbc3Connection connection, String sql, boolean isCallable, int rsType, int rsConcurrency, int rsHoldability) throws SQLException
+ {
+ super(connection, sql, isCallable, rsType, rsConcurrency, rsHoldability);
+ }
+
+ public void setObject(int parameterIndex, Object x, int targetSqlType, int scale) throws SQLException
+ {
+ if (targetSqlType == Types.OTHER && x instanceof UUID && connection.haveMinimumServerVersion("8.3"))
+ {
+ bindLiteral(parameterIndex, x.toString(), Oid.UUID);
+ } else {
+ super.setObject(parameterIndex, x, targetSqlType, scale);
+ }
+ }
+}
+
diff --git a/org/postgresql/jdbc3g/Jdbc3gResultSet.java b/org/postgresql/jdbc3g/Jdbc3gResultSet.java
index 6f33c07f..69291e09 100644
--- a/org/postgresql/jdbc3g/Jdbc3gResultSet.java
+++ b/org/postgresql/jdbc3g/Jdbc3gResultSet.java
@@ -3,7 +3,7 @@
* Copyright (c) 2004-2008, PostgreSQL Global Development Group
*
* IDENTIFICATION
-* $PostgreSQL: pgjdbc/org/postgresql/jdbc3g/Jdbc3gResultSet.java,v 1.8 2007/12/01 12:50:45 jurka Exp $
+* $PostgreSQL: pgjdbc/org/postgresql/jdbc3g/Jdbc3gResultSet.java,v 1.9 2008/01/08 06:56:30 jurka Exp $
*
*-------------------------------------------------------------------------
*/
@@ -20,7 +20,7 @@ import org.postgresql.core.*;
* However most of the implementation is really done in
* org.postgresql.jdbc3.AbstractJdbc3ResultSet or one of it's parents
*/
-public class Jdbc3gResultSet extends org.postgresql.jdbc3.AbstractJdbc3ResultSet implements java.sql.ResultSet
+public class Jdbc3gResultSet extends org.postgresql.jdbc3g.AbstractJdbc3gResultSet implements java.sql.ResultSet
{
Jdbc3gResultSet(Query originalQuery, BaseStatement statement, Field[] fields, Vector tuples, ResultCursor cursor,
int maxRows, int maxFieldSize, int rsType, int rsConcurrency, int rsHoldability) throws SQLException
diff --git a/org/postgresql/jdbc3g/Jdbc3gStatement.java b/org/postgresql/jdbc3g/Jdbc3gStatement.java
index 3a7c7e4b..18c44e37 100644
--- a/org/postgresql/jdbc3g/Jdbc3gStatement.java
+++ b/org/postgresql/jdbc3g/Jdbc3gStatement.java
@@ -3,7 +3,7 @@
* Copyright (c) 2004-2008, PostgreSQL Global Development Group
*
* IDENTIFICATION
-* $PostgreSQL: pgjdbc/org/postgresql/jdbc3g/Jdbc3gStatement.java,v 1.5 2006/06/08 10:34:51 jurka Exp $
+* $PostgreSQL: pgjdbc/org/postgresql/jdbc3g/Jdbc3gStatement.java,v 1.6 2008/01/08 06:56:30 jurka Exp $
*
*-------------------------------------------------------------------------
*/
@@ -18,7 +18,7 @@ import org.postgresql.core.*;
* However most of the implementation is really done in
* org.postgresql.jdbc3.AbstractJdbc3Statement or one of it's parents
*/
-class Jdbc3gStatement extends org.postgresql.jdbc3.AbstractJdbc3Statement implements Statement
+class Jdbc3gStatement extends org.postgresql.jdbc3g.AbstractJdbc3gStatement implements Statement
{
Jdbc3gStatement (Jdbc3gConnection c, int rsType, int rsConcurrency, int rsHoldability) throws SQLException
{
diff --git a/org/postgresql/jdbc4/AbstractJdbc4ResultSet.java b/org/postgresql/jdbc4/AbstractJdbc4ResultSet.java
index 9173a348..fcaf641e 100644
--- a/org/postgresql/jdbc4/AbstractJdbc4ResultSet.java
+++ b/org/postgresql/jdbc4/AbstractJdbc4ResultSet.java
@@ -3,7 +3,7 @@
* Copyright (c) 2004-2008, PostgreSQL Global Development Group
*
* IDENTIFICATION
-* $PostgreSQL: pgjdbc/org/postgresql/jdbc4/AbstractJdbc4ResultSet.java,v 1.3 2007/07/27 10:22:29 jurka Exp $
+* $PostgreSQL: pgjdbc/org/postgresql/jdbc4/AbstractJdbc4ResultSet.java,v 1.4 2008/01/08 06:56:30 jurka Exp $
*
*-------------------------------------------------------------------------
*/
@@ -16,7 +16,7 @@ import java.io.InputStream;
import java.util.Vector;
import org.postgresql.core.*;
-abstract class AbstractJdbc4ResultSet extends org.postgresql.jdbc3.AbstractJdbc3ResultSet
+abstract class AbstractJdbc4ResultSet extends org.postgresql.jdbc3g.AbstractJdbc3gResultSet
{
AbstractJdbc4ResultSet(Query originalQuery, BaseStatement statement, Field[] fields, Vector tuples, ResultCursor cursor,
int maxRows, int maxFieldSize, int rsType, int rsConcurrency, int rsHoldability) throws SQLException
diff --git a/org/postgresql/jdbc4/AbstractJdbc4Statement.java b/org/postgresql/jdbc4/AbstractJdbc4Statement.java
index 9893b9df..26f6311c 100644
--- a/org/postgresql/jdbc4/AbstractJdbc4Statement.java
+++ b/org/postgresql/jdbc4/AbstractJdbc4Statement.java
@@ -3,7 +3,7 @@
* Copyright (c) 2004-2008, PostgreSQL Global Development Group
*
* IDENTIFICATION
-* $PostgreSQL: pgjdbc/org/postgresql/jdbc4/AbstractJdbc4Statement.java,v 1.2 2006/10/31 06:12:47 jurka Exp $
+* $PostgreSQL: pgjdbc/org/postgresql/jdbc4/AbstractJdbc4Statement.java,v 1.3 2008/01/08 06:56:30 jurka Exp $
*
*-------------------------------------------------------------------------
*/
@@ -14,7 +14,7 @@ import java.sql.*;
import java.io.Reader;
import java.io.InputStream;
-abstract class AbstractJdbc4Statement extends org.postgresql.jdbc3.AbstractJdbc3Statement
+abstract class AbstractJdbc4Statement extends org.postgresql.jdbc3g.AbstractJdbc3gStatement
{
private boolean poolable;
diff --git a/org/postgresql/test/jdbc4/Jdbc4TestSuite.java b/org/postgresql/test/jdbc4/Jdbc4TestSuite.java
index ef22fa88..39226d8e 100644
--- a/org/postgresql/test/jdbc4/Jdbc4TestSuite.java
+++ b/org/postgresql/test/jdbc4/Jdbc4TestSuite.java
@@ -3,7 +3,7 @@
* Copyright (c) 2007-2008, PostgreSQL Global Development Group
*
* IDENTIFICATION
-* $PostgreSQL: pgjdbc/org/postgresql/test/jdbc4/Jdbc4TestSuite.java,v 1.4 2007/12/01 12:50:45 jurka Exp $
+* $PostgreSQL: pgjdbc/org/postgresql/test/jdbc4/Jdbc4TestSuite.java,v 1.5 2008/01/08 06:56:31 jurka Exp $
*
*-------------------------------------------------------------------------
*/
@@ -11,6 +11,9 @@ package org.postgresql.test.jdbc4;
import junit.framework.TestSuite;
+import java.sql.Connection;
+import org.postgresql.test.TestUtil;
+
/*
* Executes all known tests for JDBC4
*/
@@ -28,6 +31,20 @@ public class Jdbc4TestSuite extends TestSuite
suite.addTestSuite(LOBTest.class);
suite.addTestSuite(DatabaseMetaDataTest.class);
suite.addTestSuite(ArrayTest.class);
+
+ Connection connection = TestUtil.openDB();
+ try
+ {
+ if (TestUtil.haveMinimumServerVersion(connection, "8.3"))
+ {
+ suite.addTestSuite(UUIDTest.class);
+ }
+ }
+ finally
+ {
+ connection.close();
+ }
+
return suite;
}
}
[parent: 5caa608cef4b]