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]