
- Added a private api layer (org.postgresql.core.Base*) - Cleaned up public api (org.postgresql.PG*) - Added consistent headers and copywrite info - Removed deprecated Serialize functionality - Cleaned up imports - Moved some files to more appropriate locations Modified Files: jdbc/org/postgresql/Driver.java.in jdbc/org/postgresql/PGConnection.java jdbc/org/postgresql/PGNotification.java jdbc/org/postgresql/PGStatement.java jdbc/org/postgresql/core/Encoding.java jdbc/org/postgresql/core/Notification.java jdbc/org/postgresql/core/QueryExecutor.java jdbc/org/postgresql/core/StartupPacket.java jdbc/org/postgresql/fastpath/Fastpath.java jdbc/org/postgresql/fastpath/FastpathArg.java jdbc/org/postgresql/geometric/PGbox.java jdbc/org/postgresql/geometric/PGcircle.java jdbc/org/postgresql/geometric/PGline.java jdbc/org/postgresql/geometric/PGlseg.java jdbc/org/postgresql/geometric/PGpath.java jdbc/org/postgresql/geometric/PGpoint.java jdbc/org/postgresql/geometric/PGpolygon.java jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSet.java jdbc/org/postgresql/jdbc1/AbstractJdbc1ResultSetMetaData.java jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java jdbc/org/postgresql/jdbc1/Jdbc1CallableStatement.java jdbc/org/postgresql/jdbc1/Jdbc1Connection.java jdbc/org/postgresql/jdbc1/Jdbc1DatabaseMetaData.java jdbc/org/postgresql/jdbc1/Jdbc1PreparedStatement.java jdbc/org/postgresql/jdbc1/Jdbc1ResultSet.java jdbc/org/postgresql/jdbc1/Jdbc1ResultSetMetaData.java jdbc/org/postgresql/jdbc1/Jdbc1Statement.java jdbc/org/postgresql/jdbc2/AbstractJdbc2Blob.java jdbc/org/postgresql/jdbc2/AbstractJdbc2Clob.java jdbc/org/postgresql/jdbc2/AbstractJdbc2Connection.java jdbc/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java jdbc/org/postgresql/jdbc2/AbstractJdbc2Statement.java jdbc/org/postgresql/jdbc2/Array.java jdbc/org/postgresql/jdbc2/Jdbc2CallableStatement.java jdbc/org/postgresql/jdbc2/Jdbc2Connection.java jdbc/org/postgresql/jdbc2/Jdbc2PreparedStatement.java jdbc/org/postgresql/jdbc2/Jdbc2ResultSet.java jdbc/org/postgresql/jdbc2/Jdbc2ResultSetMetaData.java jdbc/org/postgresql/jdbc2/Jdbc2Statement.java jdbc/org/postgresql/jdbc3/AbstractJdbc3ResultSet.java jdbc/org/postgresql/jdbc3/Jdbc3CallableStatement.java jdbc/org/postgresql/jdbc3/Jdbc3Connection.java jdbc/org/postgresql/jdbc3/Jdbc3PreparedStatement.java jdbc/org/postgresql/jdbc3/Jdbc3ResultSet.java jdbc/org/postgresql/jdbc3/Jdbc3ResultSetMetaData.java jdbc/org/postgresql/jdbc3/Jdbc3Statement.java jdbc/org/postgresql/largeobject/BlobInputStream.java jdbc/org/postgresql/largeobject/BlobOutputStream.java jdbc/org/postgresql/largeobject/LargeObject.java jdbc/org/postgresql/largeobject/LargeObjectManager.java jdbc/org/postgresql/test/jdbc2/Jdbc2TestSuite.java jdbc/org/postgresql/test/jdbc2/optional/BaseDataSourceTest.java jdbc/org/postgresql/util/MD5Digest.java jdbc/org/postgresql/util/MessageTranslator.java jdbc/org/postgresql/util/PGbytea.java jdbc/org/postgresql/util/PGmoney.java jdbc/org/postgresql/util/PGobject.java jdbc/org/postgresql/util/PGtokenizer.java jdbc/org/postgresql/util/PSQLException.java jdbc/org/postgresql/util/UnixCrypt.java Added Files: jdbc/org/postgresql/core/BaseConnection.java jdbc/org/postgresql/core/BaseResultSet.java jdbc/org/postgresql/core/BaseStatement.java jdbc/org/postgresql/core/Field.java jdbc/org/postgresql/core/PGStream.java Removed Files: jdbc/org/postgresql/Field.java jdbc/org/postgresql/PG_Stream.java jdbc/org/postgresql/test/jdbc2/SerializeObject.java jdbc/org/postgresql/test/jdbc2/SerializeTest.java jdbc/org/postgresql/util/Serialize.java
171 lines
5.0 KiB
Java
171 lines
5.0 KiB
Java
package org.postgresql.jdbc2;
|
|
|
|
|
|
import java.io.*;
|
|
import java.net.ConnectException;
|
|
import java.sql.*;
|
|
import org.postgresql.util.PSQLException;
|
|
|
|
/* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/Attic/AbstractJdbc2Connection.java,v 1.4 2003/03/07 18:39:44 barry Exp $
|
|
* This class defines methods of the jdbc2 specification. This class extends
|
|
* org.postgresql.jdbc1.AbstractJdbc1Connection which provides the jdbc1
|
|
* methods. The real Connection class (for jdbc2) is org.postgresql.jdbc2.Jdbc2Connection
|
|
*/
|
|
public abstract class AbstractJdbc2Connection extends org.postgresql.jdbc1.AbstractJdbc1Connection
|
|
{
|
|
/*
|
|
* The current type mappings
|
|
*/
|
|
protected java.util.Map typemap;
|
|
|
|
public java.sql.Statement createStatement() throws SQLException
|
|
{
|
|
// The spec says default of TYPE_FORWARD_ONLY but everyone is used to
|
|
// using TYPE_SCROLL_INSENSITIVE
|
|
return createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY);
|
|
}
|
|
|
|
public abstract java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException;
|
|
|
|
public java.sql.PreparedStatement prepareStatement(String sql) throws SQLException
|
|
{
|
|
return prepareStatement(sql, java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY);
|
|
}
|
|
|
|
public abstract java.sql.PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException;
|
|
|
|
public java.sql.CallableStatement prepareCall(String sql) throws SQLException
|
|
{
|
|
return prepareCall(sql, java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY);
|
|
}
|
|
|
|
public abstract java.sql.CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException;
|
|
|
|
public java.util.Map getTypeMap() throws SQLException
|
|
{
|
|
return typemap;
|
|
}
|
|
|
|
|
|
public void setTypeMap(java.util.Map map) throws SQLException
|
|
{
|
|
typemap = map;
|
|
}
|
|
|
|
/*
|
|
* This overides the standard internal getObject method so that we can
|
|
* check the jdbc2 type map first
|
|
*/
|
|
public Object getObject(String type, String value) throws SQLException
|
|
{
|
|
if (typemap != null)
|
|
{
|
|
SQLData d = (SQLData) typemap.get(type);
|
|
if (d != null)
|
|
{
|
|
// Handle the type (requires SQLInput & SQLOutput classes to be implemented)
|
|
throw org.postgresql.Driver.notImplemented();
|
|
}
|
|
}
|
|
|
|
// Default to the original method
|
|
return super.getObject(type, value);
|
|
}
|
|
|
|
|
|
//Because the get/setLogStream methods are deprecated in JDBC2
|
|
//we use the get/setLogWriter methods here for JDBC2 by overriding
|
|
//the base version of this method
|
|
protected void enableDriverManagerLogging()
|
|
{
|
|
if (DriverManager.getLogWriter() == null)
|
|
{
|
|
DriverManager.setLogWriter(new PrintWriter(System.out));
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
* This implemetation uses the jdbc2Types array to support the jdbc2
|
|
* datatypes. Basically jdbc1 and jdbc2 are the same, except that
|
|
* jdbc2 adds the Array types.
|
|
*/
|
|
public int getSQLType(String pgTypeName)
|
|
{
|
|
int sqlType = Types.OTHER; // default value
|
|
for (int i = 0;i < jdbc2Types.length;i++)
|
|
{
|
|
if (pgTypeName.equals(jdbc2Types[i]))
|
|
{
|
|
sqlType = jdbc2Typei[i];
|
|
break;
|
|
}
|
|
}
|
|
return sqlType;
|
|
}
|
|
|
|
/*
|
|
* This table holds the org.postgresql names for the types supported.
|
|
* Any types that map to Types.OTHER (eg POINT) don't go into this table.
|
|
* They default automatically to Types.OTHER
|
|
*
|
|
* Note: This must be in the same order as below.
|
|
*
|
|
* Tip: keep these grouped together by the Types. value
|
|
*/
|
|
private static final String jdbc2Types[] = {
|
|
"int2",
|
|
"int4", "oid",
|
|
"int8",
|
|
"cash", "money",
|
|
"numeric",
|
|
"float4",
|
|
"float8",
|
|
"bpchar", "char", "char2", "char4", "char8", "char16",
|
|
"varchar", "text", "name", "filename",
|
|
"bytea",
|
|
"bool",
|
|
"date",
|
|
"time",
|
|
"abstime", "timestamp", "timestamptz",
|
|
"_bool", "_char", "_int2", "_int4", "_text",
|
|
"_oid", "_varchar", "_int8", "_float4", "_float8",
|
|
"_abstime", "_date", "_time", "_timestamp", "_numeric",
|
|
"_bytea"
|
|
};
|
|
|
|
/*
|
|
* This table holds the JDBC type for each entry above.
|
|
*
|
|
* Note: This must be in the same order as above
|
|
*
|
|
* Tip: keep these grouped together by the Types. value
|
|
*/
|
|
private static final int jdbc2Typei[] = {
|
|
Types.SMALLINT,
|
|
Types.INTEGER, Types.INTEGER,
|
|
Types.BIGINT,
|
|
Types.DOUBLE, Types.DOUBLE,
|
|
Types.NUMERIC,
|
|
Types.REAL,
|
|
Types.DOUBLE,
|
|
Types.CHAR, Types.CHAR, Types.CHAR, Types.CHAR, Types.CHAR, Types.CHAR,
|
|
Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR,
|
|
Types.BINARY,
|
|
Types.BIT,
|
|
Types.DATE,
|
|
Types.TIME,
|
|
Types.TIMESTAMP, Types.TIMESTAMP, Types.TIMESTAMP,
|
|
Types.ARRAY, Types.ARRAY, Types.ARRAY, Types.ARRAY, Types.ARRAY,
|
|
Types.ARRAY, Types.ARRAY, Types.ARRAY, Types.ARRAY, Types.ARRAY,
|
|
Types.ARRAY, Types.ARRAY, Types.ARRAY, Types.ARRAY, Types.ARRAY,
|
|
Types.ARRAY
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|