From 40c44166dc8a2f266b6e739a954dd74a86d6188e Mon Sep 17 00:00:00 2001 From: Barry Lind <barry@xythos.com> Date: Fri, 26 Jul 2002 05:29:35 +0000 Subject: [PATCH] Fouth (and final) phase of restructuring to add jdbc3 support. Modified Files: jdbc/org/postgresql/Driver.java.in jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java jdbc/org/postgresql/jdbc1/Jdbc1Connection.java jdbc/org/postgresql/jdbc1/Jdbc1ResultSet.java jdbc/org/postgresql/jdbc2/Jdbc2Connection.java jdbc/org/postgresql/jdbc2/Jdbc2ResultSet.java Added Files: jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSetMetaData.java jdbc/org/postgresql/jdbc1/Jdbc1DatabaseMetaData.java jdbc/org/postgresql/jdbc1/Jdbc1ResultSetMetaData.java jdbc/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java jdbc/org/postgresql/jdbc2/Jdbc2DatabaseMetaData.java jdbc/org/postgresql/jdbc2/Jdbc2ResultSetMetaData.java Removed Files: jdbc/org/postgresql/jdbc1/DatabaseMetaData.java jdbc/org/postgresql/jdbc1/ResultSetMetaData.java jdbc/org/postgresql/jdbc2/DatabaseMetaData.java jdbc/org/postgresql/jdbc2/ResultSetMetaData.java --- .../jdbc/org/postgresql/Driver.java.in | 2 +- .../jdbc1/AbstractJdbc1Connection.java | 8 +- ...ava => AbstractJdbc1DatabaseMetaData.java} | 69 +++++----------- ...va => AbstractJdbc1ResultSetMetaData.java} | 24 ++---- .../org/postgresql/jdbc1/Jdbc1Connection.java | 4 +- .../jdbc1/Jdbc1DatabaseMetaData.java | 16 ++++ .../org/postgresql/jdbc1/Jdbc1ResultSet.java | 4 +- .../jdbc1/Jdbc1ResultSetMetaData.java | 11 +++ ...ava => AbstractJdbc2DatabaseMetaData.java} | 80 +++++-------------- ...va => AbstractJdbc2ResultSetMetaData.java} | 21 +---- .../org/postgresql/jdbc2/Jdbc2Connection.java | 4 +- .../jdbc2/Jdbc2DatabaseMetaData.java | 11 +++ .../org/postgresql/jdbc2/Jdbc2ResultSet.java | 4 +- .../jdbc2/Jdbc2ResultSetMetaData.java | 10 +++ 14 files changed, 114 insertions(+), 154 deletions(-) rename src/interfaces/jdbc/org/postgresql/jdbc1/{DatabaseMetaData.java => AbstractJdbc1DatabaseMetaData.java} (97%) rename src/interfaces/jdbc/org/postgresql/jdbc1/{ResultSetMetaData.java => AbstractJdbc1ResultSetMetaData.java} (94%) create mode 100644 src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1DatabaseMetaData.java create mode 100644 src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1ResultSetMetaData.java rename src/interfaces/jdbc/org/postgresql/jdbc2/{DatabaseMetaData.java => AbstractJdbc2DatabaseMetaData.java} (97%) rename src/interfaces/jdbc/org/postgresql/jdbc2/{ResultSetMetaData.java => AbstractJdbc2ResultSetMetaData.java} (95%) create mode 100644 src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2DatabaseMetaData.java create mode 100644 src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2ResultSetMetaData.java diff --git a/src/interfaces/jdbc/org/postgresql/Driver.java.in b/src/interfaces/jdbc/org/postgresql/Driver.java.in index ecb22c7a0da..009ac6100e8 100644 --- a/src/interfaces/jdbc/org/postgresql/Driver.java.in +++ b/src/interfaces/jdbc/org/postgresql/Driver.java.in @@ -442,6 +442,6 @@ public class Driver implements java.sql.Driver } //The build number should be incremented for every new build - private static int m_buildNumber = 102; + private static int m_buildNumber = 103; } diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java index f6d3807bb9a..b66cda3a6ad 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java @@ -13,7 +13,7 @@ import org.postgresql.largeobject.LargeObjectManager; import org.postgresql.util.*; -/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1Connection.java,v 1.2 2002/07/25 22:45:27 barry Exp $ +/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/AbstractJdbc1Connection.java,v 1.3 2002/07/26 05:29:34 barry Exp $ * This class defines methods of the jdbc1 specification. This class is * extended by org.postgresql.jdbc2.AbstractJdbc2Connection which adds the jdbc2 * methods. The real Connection class (for jdbc1) is org.postgresql.jdbc1.Jdbc1Connection @@ -78,6 +78,10 @@ public abstract class AbstractJdbc1Connection implements org.postgresql.PGConnec */ private int isolationLevel = java.sql.Connection.TRANSACTION_READ_COMMITTED; + + public abstract java.sql.Statement createStatement() throws SQLException; + + /* * This method actually opens the connection. It is called by Driver. * @@ -361,6 +365,8 @@ public abstract class AbstractJdbc1Connection implements org.postgresql.PGConnec public abstract java.sql.ResultSet getResultSet(Statement statement, org.postgresql.Field[] fields, Vector tuples, String status, int updateCount, long insertOID, boolean binaryCursor) throws SQLException; + public abstract java.sql.ResultSet getResultSet(Statement statement, org.postgresql.Field[] fields, Vector tuples, String status, int updateCount) throws SQLException; + /* * This adds a warning to the warning chain. * @param msg message to add diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java similarity index 97% rename from src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java rename to src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java index bf81f78874d..3fd64c8c363 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java @@ -1,52 +1,23 @@ package org.postgresql.jdbc1; -// IMPORTANT NOTE: This file implements the JDBC 1 version of the driver. -// If you make any modifications to this file, you must make sure that the -// changes are also made (if relevent) to the related JDBC 2 class in the -// org.postgresql.jdbc2 package. import java.sql.*; import java.util.*; import org.postgresql.Field; import org.postgresql.util.PSQLException; -/* - * This class provides information about the database as a whole. - * - * $Id: DatabaseMetaData.java,v 1.49 2002/07/25 22:45:28 barry Exp $ - * - * <p>Many of the methods here return lists of information in ResultSets. You - * can use the normal ResultSet methods such as getString and getInt to - * retrieve the data from these ResultSets. If a given form of metadata is - * not available, these methods should throw a SQLException. - * - * <p>Some of these methods take arguments that are String patterns. These - * arguments all have names such as fooPattern. Within a pattern String, - * "%" means match any substring of 0 or more characters, and "_" means - * match any one character. Only metadata entries matching the search - * pattern are returned. if a search pattern argument is set to a null - * ref, it means that argument's criteria should be dropped from the - * search. - * - * <p>A SQLException will be throws if a driver does not support a meta - * data method. In the case of methods that return a ResultSet, either - * a ResultSet (which may be empty) is returned or a SQLException is - * thrown. - * - * @see java.sql.DatabaseMetaData - */ -public class DatabaseMetaData implements java.sql.DatabaseMetaData +public abstract class AbstractJdbc1DatabaseMetaData { - Jdbc1Connection connection; // The connection association + protected AbstractJdbc1Connection connection; // The connection association // These define various OID's. Hopefully they will stay constant. - static final int iVarcharOid = 1043; // OID for varchar - static final int iBoolOid = 16; // OID for bool - static final int iInt2Oid = 21; // OID for int2 - static final int iInt4Oid = 23; // OID for int4 - static final int VARHDRSZ = 4; // length for int4 + protected static final int iVarcharOid = 1043; // OID for varchar + protected static final int iBoolOid = 16; // OID for bool + protected static final int iInt2Oid = 21; // OID for int2 + protected static final int iInt4Oid = 23; // OID for int4 + protected static final int VARHDRSZ = 4; // length for int4 - public DatabaseMetaData(Jdbc1Connection conn) + public AbstractJdbc1DatabaseMetaData(AbstractJdbc1Connection conn) { this.connection = conn; } @@ -2340,13 +2311,13 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData if (col > -1) { String rule = proname.substring(8, proname.length() - 4); - int action = importedKeyNoAction; + int action = java.sql.DatabaseMetaData.importedKeyNoAction; if ("cascade".equals(rule)) - action = importedKeyCascade; + action = java.sql.DatabaseMetaData.importedKeyCascade; else if ("setnull".equals(rule)) - action = importedKeySetNull; + action = java.sql.DatabaseMetaData.importedKeySetNull; else if ("setdefault".equals(rule)) - action = importedKeySetDefault; + action = java.sql.DatabaseMetaData.importedKeySetDefault; tuple[col] = Integer.toString(action).getBytes(); if (!foundRule) @@ -2388,15 +2359,15 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData tuple[12] = rs.getBytes(4); //PK_NAME // DEFERRABILITY - int deferrability = importedKeyNotDeferrable; + int deferrability = java.sql.DatabaseMetaData.importedKeyNotDeferrable; boolean deferrable = rs.getBoolean(5); boolean initiallyDeferred = rs.getBoolean(6); if (deferrable) { if (initiallyDeferred) - deferrability = importedKeyInitiallyDeferred; + deferrability = java.sql.DatabaseMetaData.importedKeyInitiallyDeferred; else - deferrability = importedKeyInitiallyImmediate; + deferrability = java.sql.DatabaseMetaData.importedKeyInitiallyImmediate; } tuple[13] = Integer.toString(deferrability).getBytes(); @@ -2669,8 +2640,8 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData byte b9[] = "9".getBytes(); byte b10[] = "10".getBytes(); byte bf[] = "f".getBytes(); - byte bnn[] = Integer.toString(typeNoNulls).getBytes(); - byte bts[] = Integer.toString(typeSearchable).getBytes(); + byte bnn[] = Integer.toString(java.sql.DatabaseMetaData.typeNoNulls).getBytes(); + byte bts[] = Integer.toString(java.sql.DatabaseMetaData.typeSearchable).getBytes(); while (rs.next()) { @@ -2811,10 +2782,10 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData tuple[4] = null; tuple[5] = r.getBytes(3); tuple[6] = r.getBoolean(4) ? - Integer.toString(tableIndexClustered).getBytes() : + Integer.toString(java.sql.DatabaseMetaData.tableIndexClustered).getBytes() : r.getString(5).equals("hash") ? - Integer.toString(tableIndexHashed).getBytes() : - Integer.toString(tableIndexOther).getBytes(); + Integer.toString(java.sql.DatabaseMetaData.tableIndexHashed).getBytes() : + Integer.toString(java.sql.DatabaseMetaData.tableIndexOther).getBytes(); tuple[7] = Integer.toString(i + 1).getBytes(); if (columnNameRS.next()) { diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/ResultSetMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSetMetaData.java similarity index 94% rename from src/interfaces/jdbc/org/postgresql/jdbc1/ResultSetMetaData.java rename to src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSetMetaData.java index ee737604a1e..2a598d3c394 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc1/ResultSetMetaData.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSetMetaData.java @@ -1,31 +1,17 @@ package org.postgresql.jdbc1; -// IMPORTANT NOTE: This file implements the JDBC 1 version of the driver. -// If you make any modifications to this file, you must make sure that the -// changes are also made (if relevent) to the related JDBC 2 class in the -// org.postgresql.jdbc2 package. import java.lang.*; import java.util.*; import org.postgresql.*; import org.postgresql.util.*; - -// We explicitly import classes here as the original line: -//import java.sql.*; -// causes javac to get confused. import java.sql.SQLException; import java.sql.Types; -/* - * A ResultSetMetaData object can be used to find out about the types and - * properties of the columns in a ResultSet - * - * @see java.sql.ResultSetMetaData - */ -public class ResultSetMetaData implements java.sql.ResultSetMetaData +public abstract class AbstractJdbc1ResultSetMetaData { - Vector rows; - Field[] fields; + protected Vector rows; + protected Field[] fields; /* * Initialise for a result with a tuple set and @@ -34,7 +20,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData * @param rows the Vector of rows returned by the ResultSet * @param fields the array of field descriptors */ - public ResultSetMetaData(Vector rows, Field[] fields) + public AbstractJdbc1ResultSetMetaData(Vector rows, Field[] fields) { this.rows = rows; this.fields = fields; @@ -149,7 +135,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData * defined with NOT NULL or PRIMARY KEY, CHECK constraints, views, * functions etc. */ - return columnNullableUnknown; + return java.sql.ResultSetMetaData.columnNullableUnknown; } /* diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1Connection.java b/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1Connection.java index b67b07fde93..618ffa0df8c 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1Connection.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1Connection.java @@ -6,7 +6,7 @@ import java.sql.*; import org.postgresql.Field; import org.postgresql.util.PSQLException; -/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/Jdbc1Connection.java,v 1.3 2002/07/25 22:45:28 barry Exp $ +/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/Jdbc1Connection.java,v 1.4 2002/07/26 05:29:35 barry Exp $ * This class implements the java.sql.Connection interface for JDBC1. * However most of the implementation is really done in * org.postgresql.jdbc1.AbstractJdbc1Connection @@ -32,7 +32,7 @@ public class Jdbc1Connection extends org.postgresql.jdbc1.AbstractJdbc1Connectio public java.sql.DatabaseMetaData getMetaData() throws SQLException { if (metadata == null) - metadata = new org.postgresql.jdbc1.DatabaseMetaData(this); + metadata = new org.postgresql.jdbc1.Jdbc1DatabaseMetaData(this); return metadata; } diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1DatabaseMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1DatabaseMetaData.java new file mode 100644 index 00000000000..f2bde3e2485 --- /dev/null +++ b/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1DatabaseMetaData.java @@ -0,0 +1,16 @@ +package org.postgresql.jdbc1; + + +import java.sql.*; +import java.util.*; +import org.postgresql.Field; +import org.postgresql.util.PSQLException; + +public class Jdbc1DatabaseMetaData extends AbstractJdbc1DatabaseMetaData implements java.sql.DatabaseMetaData +{ + public Jdbc1DatabaseMetaData(Jdbc1Connection conn) + { + super(conn); + } + +} diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1ResultSet.java b/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1ResultSet.java index 57850569ec8..845889ed8c8 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1ResultSet.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1ResultSet.java @@ -5,7 +5,7 @@ import java.sql.*; import java.util.Vector; import org.postgresql.Field; -/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/Jdbc1ResultSet.java,v 1.2 2002/07/25 22:45:28 barry Exp $ +/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/Attic/Jdbc1ResultSet.java,v 1.3 2002/07/26 05:29:35 barry Exp $ * This class implements the java.sql.ResultSet interface for JDBC1. * However most of the implementation is really done in * org.postgresql.jdbc1.AbstractJdbc1ResultSet @@ -20,7 +20,7 @@ public class Jdbc1ResultSet extends org.postgresql.jdbc1.AbstractJdbc1ResultSet public java.sql.ResultSetMetaData getMetaData() throws SQLException { - return new ResultSetMetaData(rows, fields); + return new Jdbc1ResultSetMetaData(rows, fields); } } diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1ResultSetMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1ResultSetMetaData.java new file mode 100644 index 00000000000..998e7fd5a86 --- /dev/null +++ b/src/interfaces/jdbc/org/postgresql/jdbc1/Jdbc1ResultSetMetaData.java @@ -0,0 +1,11 @@ +package org.postgresql.jdbc1; + +public class Jdbc1ResultSetMetaData extends AbstractJdbc1ResultSetMetaData implements java.sql.ResultSetMetaData +{ + public Jdbc1ResultSetMetaData(java.util.Vector rows, org.postgresql.Field[] fields) + { + super(rows, fields); + } + +} + diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java similarity index 97% rename from src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java rename to src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java index a1c8e22737b..432ee15f528 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java @@ -1,10 +1,5 @@ package org.postgresql.jdbc2; -// IMPORTANT NOTE: This file implements the JDBC 2 version of the driver. -// If you make any modifications to this file, you must make sure that the -// changes are also made (if relevent) to the related JDBC 1 class in the -// org.postgresql.jdbc1 package. - import java.sql.*; import java.util.*; @@ -12,45 +7,12 @@ import org.postgresql.Driver; import org.postgresql.Field; import org.postgresql.util.PSQLException; -/* - * This class provides information about the database as a whole. - * - * $Id: DatabaseMetaData.java,v 1.60 2002/07/25 22:45:28 barry Exp $ - * - * <p>Many of the methods here return lists of information in ResultSets. You - * can use the normal ResultSet methods such as getString and getInt to - * retrieve the data from these ResultSets. If a given form of metadata is - * not available, these methods should throw a SQLException. - * - * <p>Some of these methods take arguments that are String patterns. These - * arguments all have names such as fooPattern. Within a pattern String, - * "%" means match any substring of 0 or more characters, and "_" means - * match any one character. Only metadata entries matching the search - * pattern are returned. if a search pattern argument is set to a null - * ref, it means that argument's criteria should be dropped from the - * search. - * - * <p>A SQLException will be throws if a driver does not support a meta - * data method. In the case of methods that return a ResultSet, either - * a ResultSet (which may be empty) is returned or a SQLException is - * thrown. - * - * @see java.sql.DatabaseMetaData - */ -public class DatabaseMetaData implements java.sql.DatabaseMetaData +public abstract class AbstractJdbc2DatabaseMetaData extends org.postgresql.jdbc1.AbstractJdbc1DatabaseMetaData { - Jdbc2Connection connection; // The connection association - - // These define various OID's. Hopefully they will stay constant. - static final int iVarcharOid = 1043; // OID for varchar - static final int iBoolOid = 16; // OID for bool - static final int iInt2Oid = 21; // OID for int2 - static final int iInt4Oid = 23; // OID for int4 - static final int VARHDRSZ = 4; // length for int4 - public DatabaseMetaData(Jdbc2Connection conn) + public AbstractJdbc2DatabaseMetaData(AbstractJdbc2Connection conn) { - this.connection = conn; + super(conn); } /* @@ -2589,18 +2551,18 @@ WHERE String rule = updateRule.substring(8, updateRule.length() - 4); - int action = importedKeyNoAction; + int action = java.sql.DatabaseMetaData.importedKeyNoAction; if ( rule == null || "noaction".equals(rule) ) - action = importedKeyNoAction; + action = java.sql.DatabaseMetaData.importedKeyNoAction; if ("cascade".equals(rule)) - action = importedKeyCascade; + action = java.sql.DatabaseMetaData.importedKeyCascade; else if ("setnull".equals(rule)) - action = importedKeySetNull; + action = java.sql.DatabaseMetaData.importedKeySetNull; else if ("setdefault".equals(rule)) - action = importedKeySetDefault; + action = java.sql.DatabaseMetaData.importedKeySetDefault; else if ("restrict".equals(rule)) - action = importedKeyRestrict; + action = java.sql.DatabaseMetaData.importedKeyRestrict; tuple[9] = Integer.toString(action).getBytes(); @@ -2613,13 +2575,13 @@ WHERE String rule = updateRule.substring(8, updateRule.length() - 4); - int action = importedKeyNoAction; + int action = java.sql.DatabaseMetaData.importedKeyNoAction; if ("cascade".equals(rule)) - action = importedKeyCascade; + action = java.sql.DatabaseMetaData.importedKeyCascade; else if ("setnull".equals(rule)) - action = importedKeySetNull; + action = java.sql.DatabaseMetaData.importedKeySetNull; else if ("setdefault".equals(rule)) - action = importedKeySetDefault; + action = java.sql.DatabaseMetaData.importedKeySetDefault; tuple[10] = Integer.toString(action).getBytes(); } @@ -2665,15 +2627,15 @@ WHERE tuple[12] = rs.getBytes(5); //PK_NAME // DEFERRABILITY - int deferrability = importedKeyNotDeferrable; + int deferrability = java.sql.DatabaseMetaData.importedKeyNotDeferrable; boolean deferrable = rs.getBoolean(6); boolean initiallyDeferred = rs.getBoolean(7); if (deferrable) { if (initiallyDeferred) - deferrability = importedKeyInitiallyDeferred; + deferrability = java.sql.DatabaseMetaData.importedKeyInitiallyDeferred; else - deferrability = importedKeyInitiallyImmediate; + deferrability = java.sql.DatabaseMetaData.importedKeyInitiallyImmediate; } tuple[13] = Integer.toString(deferrability).getBytes(); @@ -2936,8 +2898,8 @@ WHERE byte b9[] = "9".getBytes(); byte b10[] = "10".getBytes(); byte bf[] = "f".getBytes(); - byte bnn[] = Integer.toString(typeNoNulls).getBytes(); - byte bts[] = Integer.toString(typeSearchable).getBytes(); + byte bnn[] = Integer.toString(java.sql.DatabaseMetaData.typeNoNulls).getBytes(); + byte bts[] = Integer.toString(java.sql.DatabaseMetaData.typeSearchable).getBytes(); while (rs.next()) { @@ -3079,10 +3041,10 @@ WHERE tuple[4] = null; tuple[5] = r.getBytes(3); tuple[6] = r.getBoolean(4) ? - Integer.toString(tableIndexClustered).getBytes() : + Integer.toString(java.sql.DatabaseMetaData.tableIndexClustered).getBytes() : r.getString(5).equals("hash") ? - Integer.toString(tableIndexHashed).getBytes() : - Integer.toString(tableIndexOther).getBytes(); + Integer.toString(java.sql.DatabaseMetaData.tableIndexHashed).getBytes() : + Integer.toString(java.sql.DatabaseMetaData.tableIndexOther).getBytes(); tuple[7] = Integer.toString(i + 1).getBytes(); if (columnNameRS.next()) tuple[8] = columnNameRS.getBytes(1); diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSetMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java similarity index 95% rename from src/interfaces/jdbc/org/postgresql/jdbc2/ResultSetMetaData.java rename to src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java index d152c5f6ded..c64461607ad 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSetMetaData.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java @@ -1,9 +1,5 @@ package org.postgresql.jdbc2; -// IMPORTANT NOTE: This file implements the JDBC 2 version of the driver. -// If you make any modifications to this file, you must make sure that the -// changes are also made (if relevent) to the related JDBC 1 class in the -// org.postgresql.jdbc1 package. import java.lang.*; import java.sql.*; @@ -11,16 +7,8 @@ import java.util.*; import org.postgresql.*; import org.postgresql.util.*; -/** - * A ResultSetMetaData object can be used to find out about the types and - * properties of the columns in a ResultSet - * - * @see java.sql.ResultSetMetaData - */ -public class ResultSetMetaData implements java.sql.ResultSetMetaData +public abstract class AbstractJdbc2ResultSetMetaData extends org.postgresql.jdbc1.AbstractJdbc1ResultSetMetaData { - Vector rows; - Field[] fields; /* * Initialise for a result with a tuple set and @@ -29,10 +17,9 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData * @param rows the Vector of rows returned by the ResultSet * @param fields the array of field descriptors */ - public ResultSetMetaData(Vector rows, Field[] fields) + public AbstractJdbc2ResultSetMetaData(Vector rows, Field[] fields) { - this.rows = rows; - this.fields = fields; + super(rows, fields); } /* @@ -144,7 +131,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData * defined with NOT NULL or PRIMARY KEY, CHECK constraints, views, * functions etc. */ - return columnNullableUnknown; + return java.sql.ResultSetMetaData.columnNullableUnknown; } /* diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2Connection.java b/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2Connection.java index b512355260c..9e64350f5b5 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2Connection.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2Connection.java @@ -6,7 +6,7 @@ import java.util.Vector; import java.util.Hashtable; import org.postgresql.Field; -/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/Attic/Jdbc2Connection.java,v 1.3 2002/07/25 22:45:28 barry Exp $ +/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/Attic/Jdbc2Connection.java,v 1.4 2002/07/26 05:29:35 barry Exp $ * This class implements the java.sql.Connection interface for JDBC2. * However most of the implementation is really done in * org.postgresql.jdbc2.AbstractJdbc2Connection or one of it's parents @@ -42,7 +42,7 @@ public class Jdbc2Connection extends org.postgresql.jdbc2.AbstractJdbc2Connectio public java.sql.DatabaseMetaData getMetaData() throws SQLException { if (metadata == null) - metadata = new org.postgresql.jdbc2.DatabaseMetaData(this); + metadata = new org.postgresql.jdbc2.Jdbc2DatabaseMetaData(this); return metadata; } diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2DatabaseMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2DatabaseMetaData.java new file mode 100644 index 00000000000..2e7171913e7 --- /dev/null +++ b/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2DatabaseMetaData.java @@ -0,0 +1,11 @@ +package org.postgresql.jdbc2; + + +public class Jdbc2DatabaseMetaData extends AbstractJdbc2DatabaseMetaData implements java.sql.DatabaseMetaData +{ + public Jdbc2DatabaseMetaData(Jdbc2Connection conn) + { + super(conn); + } + +} diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2ResultSet.java b/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2ResultSet.java index e2c6ad7eea2..c6415f0f7ae 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2ResultSet.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2ResultSet.java @@ -5,7 +5,7 @@ import java.sql.*; import java.util.Vector; import org.postgresql.Field; -/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/Attic/Jdbc2ResultSet.java,v 1.2 2002/07/25 22:45:28 barry Exp $ +/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/Attic/Jdbc2ResultSet.java,v 1.3 2002/07/26 05:29:35 barry Exp $ * This class implements the java.sql.ResultSet interface for JDBC2. * However most of the implementation is really done in * org.postgresql.jdbc2.AbstractJdbc2ResultSet or one of it's parents @@ -20,7 +20,7 @@ public class Jdbc2ResultSet extends org.postgresql.jdbc2.AbstractJdbc2ResultSet public java.sql.ResultSetMetaData getMetaData() throws SQLException { - return new ResultSetMetaData(rows, fields); + return new Jdbc2ResultSetMetaData(rows, fields); } } diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2ResultSetMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2ResultSetMetaData.java new file mode 100644 index 00000000000..e0e5a0dc7da --- /dev/null +++ b/src/interfaces/jdbc/org/postgresql/jdbc2/Jdbc2ResultSetMetaData.java @@ -0,0 +1,10 @@ +package org.postgresql.jdbc2; + +public class Jdbc2ResultSetMetaData extends AbstractJdbc2ResultSetMetaData implements java.sql.ResultSetMetaData +{ + public Jdbc2ResultSetMetaData(java.util.Vector rows, org.postgresql.Field[] fields) + { + super(rows, fields); + } +} + -- GitLab