Commit f3148bef authored by Bruce Momjian's avatar Bruce Momjian

JDBC indenting, comment cleanups.

parent 8f6f1692
...@@ -10,8 +10,8 @@ import org.postgresql.largeobject.*; ...@@ -10,8 +10,8 @@ import org.postgresql.largeobject.*;
import org.postgresql.util.*; import org.postgresql.util.*;
import org.postgresql.core.*; import org.postgresql.core.*;
/** /*
* $Id: Connection.java,v 1.35 2001/11/12 19:11:56 barry Exp $ * $Id: Connection.java,v 1.36 2001/11/19 22:33:37 momjian Exp $
* *
* This abstract class is used by org.postgresql.Driver to open either the JDBC1 or * This abstract class is used by org.postgresql.Driver to open either the JDBC1 or
* JDBC2 versions of the Connection class. * JDBC2 versions of the Connection class.
...@@ -30,7 +30,7 @@ public abstract class Connection ...@@ -30,7 +30,7 @@ public abstract class Connection
private boolean PG_STATUS; private boolean PG_STATUS;
private String compatible; private String compatible;
/** /*
* The encoding to use for this connection. * The encoding to use for this connection.
*/ */
private Encoding encoding = Encoding.defaultEncoding(); private Encoding encoding = Encoding.defaultEncoding();
...@@ -63,7 +63,7 @@ public abstract class Connection ...@@ -63,7 +63,7 @@ public abstract class Connection
private static final int AUTH_REQ_KRB5 = 2; private static final int AUTH_REQ_KRB5 = 2;
private static final int AUTH_REQ_PASSWORD = 3; private static final int AUTH_REQ_PASSWORD = 3;
private static final int AUTH_REQ_CRYPT = 4; private static final int AUTH_REQ_CRYPT = 4;
private static final int AUTH_REQ_MD5 = 5; private static final int AUTH_REQ_MD5 = 5;
// New for 6.3, salt value for crypt authorisation // New for 6.3, salt value for crypt authorisation
private String salt; private String salt;
...@@ -76,7 +76,7 @@ public abstract class Connection ...@@ -76,7 +76,7 @@ public abstract class Connection
// Now handle notices as warnings, so things like "show" now work // Now handle notices as warnings, so things like "show" now work
public SQLWarning firstWarning = null; public SQLWarning firstWarning = null;
/** /*
* Cache of the current isolation level * Cache of the current isolation level
*/ */
private int isolationLevel = java.sql.Connection.TRANSACTION_READ_COMMITTED; private int isolationLevel = java.sql.Connection.TRANSACTION_READ_COMMITTED;
...@@ -85,13 +85,13 @@ public abstract class Connection ...@@ -85,13 +85,13 @@ public abstract class Connection
public int pid; public int pid;
public int ckey; public int ckey;
/** /*
* This is called by Class.forName() from within org.postgresql.Driver * This is called by Class.forName() from within org.postgresql.Driver
*/ */
public Connection() public Connection()
{} {}
/** /*
* This method actually opens the connection. It is called by Driver. * This method actually opens the connection. It is called by Driver.
* *
* @param host the hostname of the database back end * @param host the hostname of the database back end
...@@ -115,7 +115,7 @@ public abstract class Connection ...@@ -115,7 +115,7 @@ public abstract class Connection
this_url = url; this_url = url;
PG_DATABASE = database; PG_DATABASE = database;
PG_USER = info.getProperty("user"); PG_USER = info.getProperty("user");
PG_PASSWORD = info.getProperty("password",""); PG_PASSWORD = info.getProperty("password","");
PG_PORT = port; PG_PORT = port;
PG_HOST = host; PG_HOST = host;
PG_STATUS = CONNECTION_BAD; PG_STATUS = CONNECTION_BAD;
...@@ -335,7 +335,7 @@ public abstract class Connection ...@@ -335,7 +335,7 @@ public abstract class Connection
// are common to all implementations (JDBC1 or 2), they are placed here. // are common to all implementations (JDBC1 or 2), they are placed here.
// This should make it easy to maintain the two specifications. // This should make it easy to maintain the two specifications.
/** /*
* This adds a warning to the warning chain. * This adds a warning to the warning chain.
* @param msg message to add * @param msg message to add
*/ */
...@@ -355,17 +355,17 @@ public abstract class Connection ...@@ -355,17 +355,17 @@ public abstract class Connection
// technique again, we'll know where to place it. // technique again, we'll know where to place it.
// //
// This is generated by the SQL "show datestyle" // This is generated by the SQL "show datestyle"
//if(msg.startsWith("NOTICE:") && msg.indexOf("DateStyle")>0) { //if (msg.startsWith("NOTICE:") && msg.indexOf("DateStyle")>0) {
//// 13 is the length off "DateStyle is " //// 13 is the length off "DateStyle is "
//msg = msg.substring(msg.indexOf("DateStyle is ")+13); //msg = msg.substring(msg.indexOf("DateStyle is ")+13);
// //
//for(int i=0;i<dateStyles.length;i+=2) //for(int i=0;i<dateStyles.length;i+=2)
//if(msg.startsWith(dateStyles[i])) //if (msg.startsWith(dateStyles[i]))
//currentDateStyle=i+1; // this is the index of the format //currentDateStyle=i+1; // this is the index of the format
//} //}
} }
/** /*
* Send a query to the backend. Returns one of the ResultSet * Send a query to the backend. Returns one of the ResultSet
* objects. * objects.
* *
...@@ -381,7 +381,7 @@ public abstract class Connection ...@@ -381,7 +381,7 @@ public abstract class Connection
return ExecSQL(sql, null); return ExecSQL(sql, null);
} }
/** /*
* Send a query to the backend. Returns one of the ResultSet * Send a query to the backend. Returns one of the ResultSet
* objects. * objects.
* *
...@@ -398,7 +398,7 @@ public abstract class Connection ...@@ -398,7 +398,7 @@ public abstract class Connection
return new QueryExecutor(sql, stat, pg_stream, this).execute(); return new QueryExecutor(sql, stat, pg_stream, this).execute();
} }
/** /*
* In SQL, a result table can be retrieved through a cursor that * In SQL, a result table can be retrieved through a cursor that
* is named. The current row of a result can be updated or deleted * is named. The current row of a result can be updated or deleted
* using a positioned update/delete statement that references the * using a positioned update/delete statement that references the
...@@ -416,7 +416,7 @@ public abstract class Connection ...@@ -416,7 +416,7 @@ public abstract class Connection
this.cursor = cursor; this.cursor = cursor;
} }
/** /*
* getCursorName gets the cursor name. * getCursorName gets the cursor name.
* *
* @return the current cursor name * @return the current cursor name
...@@ -427,7 +427,7 @@ public abstract class Connection ...@@ -427,7 +427,7 @@ public abstract class Connection
return cursor; return cursor;
} }
/** /*
* We are required to bring back certain information by * We are required to bring back certain information by
* the DatabaseMetaData class. These functions do that. * the DatabaseMetaData class. These functions do that.
* *
...@@ -441,7 +441,7 @@ public abstract class Connection ...@@ -441,7 +441,7 @@ public abstract class Connection
return this_url; return this_url;
} }
/** /*
* Method getUserName() brings back the User Name (again, we * Method getUserName() brings back the User Name (again, we
* saved it) * saved it)
* *
...@@ -453,7 +453,7 @@ public abstract class Connection ...@@ -453,7 +453,7 @@ public abstract class Connection
return PG_USER; return PG_USER;
} }
/** /*
* Get the character encoding to use for this connection. * Get the character encoding to use for this connection.
*/ */
public Encoding getEncoding() throws SQLException public Encoding getEncoding() throws SQLException
...@@ -461,7 +461,7 @@ public abstract class Connection ...@@ -461,7 +461,7 @@ public abstract class Connection
return encoding; return encoding;
} }
/** /*
* This returns the Fastpath API for the current connection. * This returns the Fastpath API for the current connection.
* *
* <p><b>NOTE:</b> This is not part of JDBC, but allows access to * <p><b>NOTE:</b> This is not part of JDBC, but allows access to
...@@ -493,7 +493,7 @@ public abstract class Connection ...@@ -493,7 +493,7 @@ public abstract class Connection
// This holds a reference to the Fastpath API if already open // This holds a reference to the Fastpath API if already open
private Fastpath fastpath = null; private Fastpath fastpath = null;
/** /*
* This returns the LargeObject API for the current connection. * This returns the LargeObject API for the current connection.
* *
* <p><b>NOTE:</b> This is not part of JDBC, but allows access to * <p><b>NOTE:</b> This is not part of JDBC, but allows access to
...@@ -522,7 +522,7 @@ public abstract class Connection ...@@ -522,7 +522,7 @@ public abstract class Connection
// This holds a reference to the LargeObject API if already open // This holds a reference to the LargeObject API if already open
private LargeObjectManager largeobject = null; private LargeObjectManager largeobject = null;
/** /*
* This method is used internally to return an object based around * This method is used internally to return an object based around
* org.postgresql's more unique data types. * org.postgresql's more unique data types.
* *
...@@ -594,7 +594,7 @@ public abstract class Connection ...@@ -594,7 +594,7 @@ public abstract class Connection
return null; return null;
} }
/** /*
* This stores an object into the database. * This stores an object into the database.
* @param o Object to store * @param o Object to store
* @return OID of the new rectord * @return OID of the new rectord
...@@ -639,7 +639,7 @@ public abstract class Connection ...@@ -639,7 +639,7 @@ public abstract class Connection
} }
} }
/** /*
* This allows client code to add a handler for one of org.postgresql's * This allows client code to add a handler for one of org.postgresql's
* more unique data types. * more unique data types.
* *
...@@ -693,13 +693,13 @@ public abstract class Connection ...@@ -693,13 +693,13 @@ public abstract class Connection
// These are required by other common classes // These are required by other common classes
public abstract java.sql.Statement createStatement() throws SQLException; public abstract java.sql.Statement createStatement() throws SQLException;
/** /*
* This returns a resultset. It must be overridden, so that the correct * This returns a resultset. It must be overridden, so that the correct
* version (from jdbc1 or jdbc2) are returned. * version (from jdbc1 or jdbc2) are returned.
*/ */
public abstract java.sql.ResultSet getResultSet(org.postgresql.Connection conn, java.sql.Statement stat, Field[] fields, Vector tuples, String status, int updateCount, int insertOID, boolean binaryCursor) throws SQLException; public abstract java.sql.ResultSet getResultSet(org.postgresql.Connection conn, java.sql.Statement stat, Field[] fields, Vector tuples, String status, int updateCount, int insertOID, boolean binaryCursor) throws SQLException;
/** /*
* In some cases, it is desirable to immediately release a Connection's * In some cases, it is desirable to immediately release a Connection's
* database and JDBC resources instead of waiting for them to be * database and JDBC resources instead of waiting for them to be
* automatically released (cant think why off the top of my head) * automatically released (cant think why off the top of my head)
...@@ -726,7 +726,7 @@ public abstract class Connection ...@@ -726,7 +726,7 @@ public abstract class Connection
} }
} }
/** /*
* A driver may convert the JDBC sql grammar into its system's * A driver may convert the JDBC sql grammar into its system's
* native SQL grammar prior to sending it; nativeSQL returns the * native SQL grammar prior to sending it; nativeSQL returns the
* native form of the statement that the driver would have sent. * native form of the statement that the driver would have sent.
...@@ -741,7 +741,7 @@ public abstract class Connection ...@@ -741,7 +741,7 @@ public abstract class Connection
return sql; return sql;
} }
/** /*
* The first warning reported by calls on this Connection is * The first warning reported by calls on this Connection is
* returned. * returned.
* *
...@@ -756,7 +756,7 @@ public abstract class Connection ...@@ -756,7 +756,7 @@ public abstract class Connection
return firstWarning; return firstWarning;
} }
/** /*
* After this call, getWarnings returns null until a new warning * After this call, getWarnings returns null until a new warning
* is reported for this connection. * is reported for this connection.
* *
...@@ -768,7 +768,7 @@ public abstract class Connection ...@@ -768,7 +768,7 @@ public abstract class Connection
} }
/** /*
* You can put a connection in read-only mode as a hunt to enable * You can put a connection in read-only mode as a hunt to enable
* database optimizations * database optimizations
* *
...@@ -783,7 +783,7 @@ public abstract class Connection ...@@ -783,7 +783,7 @@ public abstract class Connection
this.readOnly = readOnly; this.readOnly = readOnly;
} }
/** /*
* Tests to see if the connection is in Read Only Mode. Note that * Tests to see if the connection is in Read Only Mode. Note that
* we cannot really put the database in read only mode, but we pretend * we cannot really put the database in read only mode, but we pretend
* we can by returning the value of the readOnly flag * we can by returning the value of the readOnly flag
...@@ -796,7 +796,7 @@ public abstract class Connection ...@@ -796,7 +796,7 @@ public abstract class Connection
return readOnly; return readOnly;
} }
/** /*
* If a connection is in auto-commit mode, than all its SQL * If a connection is in auto-commit mode, than all its SQL
* statements will be executed and committed as individual * statements will be executed and committed as individual
* transactions. Otherwise, its SQL statements are grouped * transactions. Otherwise, its SQL statements are grouped
...@@ -835,7 +835,7 @@ public abstract class Connection ...@@ -835,7 +835,7 @@ public abstract class Connection
this.autoCommit = autoCommit; this.autoCommit = autoCommit;
} }
/** /*
* gets the current auto-commit state * gets the current auto-commit state
* *
* @return Current state of the auto-commit mode * @return Current state of the auto-commit mode
...@@ -847,7 +847,7 @@ public abstract class Connection ...@@ -847,7 +847,7 @@ public abstract class Connection
return this.autoCommit; return this.autoCommit;
} }
/** /*
* The method commit() makes all changes made since the previous * The method commit() makes all changes made since the previous
* commit/rollback permanent and releases any database locks currently * commit/rollback permanent and releases any database locks currently
* held by the Connection. This method should only be used when * held by the Connection. This method should only be used when
...@@ -873,7 +873,7 @@ public abstract class Connection ...@@ -873,7 +873,7 @@ public abstract class Connection
} }
} }
/** /*
* The method rollback() drops all changes made since the previous * The method rollback() drops all changes made since the previous
* commit/rollback and releases any database locks currently held by * commit/rollback and releases any database locks currently held by
* the Connection. * the Connection.
...@@ -897,7 +897,7 @@ public abstract class Connection ...@@ -897,7 +897,7 @@ public abstract class Connection
} }
} }
/** /*
* Get this Connection's current transaction isolation mode. * Get this Connection's current transaction isolation mode.
* *
* @return the current TRANSACTION_* mode value * @return the current TRANSACTION_* mode value
...@@ -925,7 +925,7 @@ public abstract class Connection ...@@ -925,7 +925,7 @@ public abstract class Connection
return java.sql.Connection.TRANSACTION_READ_COMMITTED; return java.sql.Connection.TRANSACTION_READ_COMMITTED;
} }
/** /*
* You can call this method to try to change the transaction * You can call this method to try to change the transaction
* isolation level using one of the TRANSACTION_* values. * isolation level using one of the TRANSACTION_* values.
* *
...@@ -972,7 +972,7 @@ public abstract class Connection ...@@ -972,7 +972,7 @@ public abstract class Connection
ExecSQL(isolationLevelSQL); ExecSQL(isolationLevelSQL);
} }
/** /*
* Helper method used by setTransactionIsolation(), commit(), rollback() * Helper method used by setTransactionIsolation(), commit(), rollback()
* and setAutoCommit(). This returns the SQL string needed to * and setAutoCommit(). This returns the SQL string needed to
* set the isolation level for a transaction. In 7.1 and later it * set the isolation level for a transaction. In 7.1 and later it
...@@ -1007,7 +1007,7 @@ public abstract class Connection ...@@ -1007,7 +1007,7 @@ public abstract class Connection
return sb.toString(); return sb.toString();
} }
/** /*
* A sub-space of this Connection's database may be selected by * A sub-space of this Connection's database may be selected by
* setting a catalog name. If the driver does not support catalogs, * setting a catalog name. If the driver does not support catalogs,
* it will silently ignore this request * it will silently ignore this request
...@@ -1019,7 +1019,7 @@ public abstract class Connection ...@@ -1019,7 +1019,7 @@ public abstract class Connection
//no-op //no-op
} }
/** /*
* Return the connections current catalog name, or null if no * Return the connections current catalog name, or null if no
* catalog name is set, or we dont support catalogs. * catalog name is set, or we dont support catalogs.
* *
...@@ -1031,7 +1031,7 @@ public abstract class Connection ...@@ -1031,7 +1031,7 @@ public abstract class Connection
return PG_DATABASE; return PG_DATABASE;
} }
/** /*
* Overides finalize(). If called, it closes the connection. * Overides finalize(). If called, it closes the connection.
* *
* This was done at the request of Rachel Greenham * This was done at the request of Rachel Greenham
...@@ -1051,7 +1051,7 @@ public abstract class Connection ...@@ -1051,7 +1051,7 @@ public abstract class Connection
return versionParts.nextToken(); /* "X.Y.Z" */ return versionParts.nextToken(); /* "X.Y.Z" */
} }
/** /*
* Get server version number * Get server version number
*/ */
public String getDBVersionNumber() public String getDBVersionNumber()
...@@ -1064,7 +1064,7 @@ public abstract class Connection ...@@ -1064,7 +1064,7 @@ public abstract class Connection
return (getDBVersionNumber().compareTo(ver) >= 0); return (getDBVersionNumber().compareTo(ver) >= 0);
} }
/** /*
* This method returns true if the compatible level set in the connection * This method returns true if the compatible level set in the connection
* (which can be passed into the connection or specified in the URL) * (which can be passed into the connection or specified in the URL)
* is at least the value passed to this method. This is used to toggle * is at least the value passed to this method. This is used to toggle
...@@ -1082,7 +1082,7 @@ public abstract class Connection ...@@ -1082,7 +1082,7 @@ public abstract class Connection
} }
/** /*
* This returns the java.sql.Types type for a PG type oid * This returns the java.sql.Types type for a PG type oid
* *
* @param oid PostgreSQL type oid * @param oid PostgreSQL type oid
...@@ -1111,7 +1111,7 @@ public abstract class Connection ...@@ -1111,7 +1111,7 @@ public abstract class Connection
return sqlType.intValue(); return sqlType.intValue();
} }
/** /*
* This returns the java.sql.Types type for a PG type * This returns the java.sql.Types type for a PG type
* *
* @param pgTypeName PostgreSQL type name * @param pgTypeName PostgreSQL type name
...@@ -1119,7 +1119,7 @@ public abstract class Connection ...@@ -1119,7 +1119,7 @@ public abstract class Connection
*/ */
public abstract int getSQLType(String pgTypeName); public abstract int getSQLType(String pgTypeName);
/** /*
* This returns the oid for a given PG data type * This returns the oid for a given PG data type
* @param typeName PostgreSQL type name * @param typeName PostgreSQL type name
* @return PostgreSQL oid value for a field of this type * @return PostgreSQL oid value for a field of this type
...@@ -1150,7 +1150,7 @@ public abstract class Connection ...@@ -1150,7 +1150,7 @@ public abstract class Connection
return oid; return oid;
} }
/** /*
* We also need to get the PG type name as returned by the back end. * We also need to get the PG type name as returned by the back end.
* *
* @return the String representation of the type of this field * @return the String representation of the type of this field
......
...@@ -5,7 +5,7 @@ import java.util.*; ...@@ -5,7 +5,7 @@ import java.util.*;
import org.postgresql.util.PSQLException; import org.postgresql.util.PSQLException;
/** /*
* The Java SQL framework allows for multiple database drivers. Each * The Java SQL framework allows for multiple database drivers. Each
* driver should supply a class that implements the Driver interface * driver should supply a class that implements the Driver interface
* *
...@@ -18,7 +18,7 @@ import org.postgresql.util.PSQLException; ...@@ -18,7 +18,7 @@ import org.postgresql.util.PSQLException;
* bringing in vast quantities of supporting code. * bringing in vast quantities of supporting code.
* *
* <p>When a Driver class is loaded, it should create an instance of itself * <p>When a Driver class is loaded, it should create an instance of itself
* and register it with the DriverManager. This means that a user can load * and register it with the DriverManager. This means that a user can load
* and register a driver by doing Class.forName("foo.bah.Driver") * and register a driver by doing Class.forName("foo.bah.Driver")
* *
* @see org.postgresql.Connection * @see org.postgresql.Connection
...@@ -27,484 +27,526 @@ import org.postgresql.util.PSQLException; ...@@ -27,484 +27,526 @@ import org.postgresql.util.PSQLException;
public class Driver implements java.sql.Driver public class Driver implements java.sql.Driver
{ {
protected static final int DEBUG=0; protected static final int DEBUG = 0;
protected static final int INFO = 1; protected static final int INFO = 1;
protected static final int WARN = 2; protected static final int WARN = 2;
protected static final int ERROR = 3; protected static final int ERROR = 3;
protected static final int FATAL = 4; protected static final int FATAL = 4;
private static int logLevel= FATAL; private static int logLevel = FATAL;
static static
{ {
try { try
// moved the registerDriver from the constructor to here {
// because some clients call the driver themselves (I know, as // moved the registerDriver from the constructor to here
// my early jdbc work did - and that was based on other examples). // because some clients call the driver themselves (I know, as
// Placing it here, means that the driver is registered once only. // my early jdbc work did - and that was based on other examples).
java.sql.DriverManager.registerDriver(new Driver()); // Placing it here, means that the driver is registered once only.
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException e) {
e.printStackTrace(); }
} catch (SQLException e)
} {
e.printStackTrace();
/** }
* Construct a new driver and register it with DriverManager
*
* @exception SQLException for who knows what!
*/
public Driver() throws SQLException
{
// Set the connectClass variable so that future calls will handle the correct
// base class
//if(System.getProperty("java.version").startsWith("1.1")) {
//connectClass = "postgresql.jdbc1.Connection";
//} else {
//connectClass = "postgresql.jdbc2.Connection";
//}
// Ok, when the above code was introduced in 6.5 it's intention was to allow
// the driver to automatically detect which version of JDBC was being used
// and to detect the version of the JVM accordingly.
//
// It did this by using the java.version parameter.
//
// However, it was quickly discovered that not all JVM's returned an easily
// parseable version number (ie "1.2") and some don't return a value at all.
// The latter came from a discussion on the advanced java list.
//
// So, to solve this, I've moved the decision out of the driver, and it's now
// a compile time parameter.
//
// For this to work, the Makefile creates a pseudo class which contains the class
// name that will actually make the connection.
}
/**
* Try to make a database connection to the given URL. The driver
* should return "null" if it realizes it is the wrong kind of
* driver to connect to the given URL. This will be common, as
* when the JDBC driverManager is asked to connect to a given URL,
* it passes the URL to each loaded driver in turn.
*
* <p>The driver should raise an SQLException if it is the right driver
* to connect to the given URL, but has trouble connecting to the
* database.
*
* <p>The java.util.Properties argument can be used to pass arbitrary
* string tag/value pairs as connection arguments.
*
* user - (optional) The user to connect as
* password - (optional) The password for the user
* charSet - (optional) The character set to be used for converting
* to/from the database to unicode. If multibyte is enabled on the
* server then the character set of the database is used as the default,
* otherwise the jvm character encoding is used as the default.
* compatible - This is used to toggle
* between different functionality as it changes across different releases
* of the jdbc driver code. The values here are versions of the jdbc
* client and not server versions. For example in 7.1 get/setBytes
* worked on LargeObject values, in 7.2 these methods were changed
* to work on bytea values. This change in functionality could
* be disabled by setting the compatible level to be "7.1", in
* which case the driver will revert to the 7.1 functionality.
*
* <p>Normally, at least
* "user" and "password" properties should be included in the
* properties. For a list of supported
* character encoding , see
* http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html
* Note that you will probably want to have set up the Postgres database
* itself to use the same encoding, with the "-E <encoding>" argument
* to createdb.
*
* Our protocol takes the forms:
* <PRE>
* jdbc:org.postgresql://host:port/database?param1=val1&...
* </PRE>
*
* @param url the URL of the database to connect to
* @param info a list of arbitrary tag/value pairs as connection
* arguments
* @return a connection to the URL or null if it isnt us
* @exception SQLException if a database access error occurs
* @see java.sql.Driver#connect
*/
public java.sql.Connection connect(String url, Properties info) throws SQLException
{
if((props = parseURL(url,info))==null)
{
Driver.debug("Error in url" + url);
return null;
}
try {
Driver.debug("connect " + url);
org.postgresql.Connection con = (org.postgresql.Connection)(Class.forName("@JDBCCONNECTCLASS@").newInstance());
con.openConnection (host(), port(), props, database(), url, this);
return (java.sql.Connection)con;
} catch(ClassNotFoundException ex) {
Driver.debug("error",ex);
throw new PSQLException("postgresql.jvm.version",ex);
} catch(PSQLException ex1) {
// re-throw the exception, otherwise it will be caught next, and a
// org.postgresql.unusual error will be returned instead.
throw ex1;
} catch(Exception ex2) {
Driver.debug("error",ex2);
throw new PSQLException("postgresql.unusual",ex2);
}
}
/**
* Returns true if the driver thinks it can open a connection to the
* given URL. Typically, drivers will return true if they understand
* the subprotocol specified in the URL and false if they don't. Our
* protocols start with jdbc:org.postgresql:
*
* @see java.sql.Driver#acceptsURL
* @param url the URL of the driver
* @return true if this driver accepts the given URL
* @exception SQLException if a database-access error occurs
* (Dont know why it would *shrug*)
*/
public boolean acceptsURL(String url) throws SQLException
{
if(parseURL(url,null)==null)
return false;
return true;
}
/**
* The getPropertyInfo method is intended to allow a generic GUI
* tool to discover what properties it should prompt a human for
* in order to get enough information to connect to a database.
*
* <p>Note that depending on the values the human has supplied so
* far, additional values may become necessary, so it may be necessary
* to iterate through several calls to getPropertyInfo
*
* @param url the Url of the database to connect to
* @param info a proposed list of tag/value pairs that will be sent on
* connect open.
* @return An array of DriverPropertyInfo objects describing
* possible properties. This array may be an empty array if
* no properties are required
* @exception SQLException if a database-access error occurs
* @see java.sql.Driver#getPropertyInfo
*/
public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException
{
Properties p = parseURL(url,info);
// naughty, but its best for speed. If anyone adds a property here, then
// this _MUST_ be increased to accomodate them.
DriverPropertyInfo d,dpi[] = new DriverPropertyInfo[0];
//int i=0;
//dpi[i++] = d = new DriverPropertyInfo("auth",p.getProperty("auth","default"));
//d.description = "determines if password authentication is used";
//d.choices = new String[4];
//d.choices[0]="default"; // Get value from org.postgresql.auth property, defaults to trust
//d.choices[1]="trust"; // No password authentication
//d.choices[2]="password"; // Password authentication
//d.choices[3]="ident"; // Ident (RFC 1413) protocol
return dpi;
}
/**
* Gets the drivers major version number
*
* @return the drivers major version number
*/
public int getMajorVersion()
{
return @MAJORVERSION@;
}
/**
* Get the drivers minor version number
*
* @return the drivers minor version number
*/
public int getMinorVersion()
{
return @MINORVERSION@;
}
/**
* Returns the VERSION variable from Makefile.global
*/
public static String getVersion()
{
return "@VERSION@";
}
/**
* Report whether the driver is a genuine JDBC compliant driver. A
* driver may only report "true" here if it passes the JDBC compliance
* tests, otherwise it is required to return false. JDBC compliance
* requires full support for the JDBC API and full support for SQL 92
* Entry Level.
*
* <p>For PostgreSQL, this is not yet possible, as we are not SQL92
* compliant (yet).
*/
public boolean jdbcCompliant()
{
return false;
}
private Properties props;
static private String[] protocols = { "jdbc","postgresql" };
/**
* Constructs a new DriverURL, splitting the specified URL into its
* component parts
* @param url JDBC URL to parse
* @param defaults Default properties
* @return Properties with elements added from the url
* @exception SQLException
*/
Properties parseURL(String url,Properties defaults) throws SQLException
{
int state = -1;
Properties urlProps = new Properties(defaults);
String key = "";
String value = "";
StringTokenizer st = new StringTokenizer(url, ":/;=&?", true);
for (int count = 0; (st.hasMoreTokens()); count++) {
String token = st.nextToken();
// PM June 29 1997
// Added this, to help me understand how this works.
// Unless you want each token to be processed, leave this commented out
// but don't delete it.
//DriverManager.println("wellFormedURL: state="+state+" count="+count+" token='"+token+"'");
// PM Aug 2 1997 - Modified to allow multiple backends
if (count <= 3) {
if ((count % 2) == 1 && token.equals(":"))
;
else if((count % 2) == 0) {
boolean found=(count==0)?true:false;
for(int tmp=0;tmp<protocols.length;tmp++) {
if(token.equals(protocols[tmp])) {
// PM June 29 1997 Added this property to enable the driver
// to handle multiple backend protocols.
if(count == 2 && tmp > 0) {
urlProps.put("Protocol",token);
found=true;
}
}
}
if(found == false)
return null;
} else return null;
}
else if (count > 3) {
if (count == 4 && token.equals("/")) state = 0;
else if (count == 4) {
urlProps.put("PGDBNAME", token);
state = -2;
} }
else if (count == 5 && state == 0 && token.equals("/"))
state = 1; /*
else if (count == 5 && state == 0) * Construct a new driver and register it with DriverManager
return null; *
else if (count == 6 && state == 1) * @exception SQLException for who knows what!
urlProps.put("PGHOST", token); */
else if (count == 7 && token.equals(":")) state = 2; public Driver() throws SQLException
else if (count == 8 && state == 2) { {
try { // Set the connectClass variable so that future calls will handle the correct
Integer portNumber = Integer.decode(token); // base class
urlProps.put("PGPORT", portNumber.toString()); //if (System.getProperty("java.version").startsWith("1.1")) {
} catch (Exception e) { //connectClass = "postgresql.jdbc1.Connection";
return null; //} else {
} //connectClass = "postgresql.jdbc2.Connection";
//}
// Ok, when the above code was introduced in 6.5 it's intention was to allow
// the driver to automatically detect which version of JDBC was being used
// and to detect the version of the JVM accordingly.
//
// It did this by using the java.version parameter.
//
// However, it was quickly discovered that not all JVM's returned an easily
// parseable version number (ie "1.2") and some don't return a value at all.
// The latter came from a discussion on the advanced java list.
//
// So, to solve this, I've moved the decision out of the driver, and it's now
// a compile time parameter.
//
// For this to work, the Makefile creates a pseudo class which contains the class
// name that will actually make the connection.
} }
else if ((count == 7 || count == 9) &&
(state == 1 || state == 2) && token.equals("/")) /*
state = -1; * Try to make a database connection to the given URL. The driver
else if (state == -1) { * should return "null" if it realizes it is the wrong kind of
urlProps.put("PGDBNAME", token); * driver to connect to the given URL. This will be common, as
state = -2; * when the JDBC driverManager is asked to connect to a given URL,
* it passes the URL to each loaded driver in turn.
*
* <p>The driver should raise an SQLException if it is the right driver
* to connect to the given URL, but has trouble connecting to the
* database.
*
* <p>The java.util.Properties argument can be used to pass arbitrary
* string tag/value pairs as connection arguments.
*
* user - (optional) The user to connect as
* password - (optional) The password for the user
* charSet - (optional) The character set to be used for converting
* to/from the database to unicode. If multibyte is enabled on the
* server then the character set of the database is used as the default,
* otherwise the jvm character encoding is used as the default.
* compatible - This is used to toggle
* between different functionality as it changes across different releases
* of the jdbc driver code. The values here are versions of the jdbc
* client and not server versions. For example in 7.1 get/setBytes
* worked on LargeObject values, in 7.2 these methods were changed
* to work on bytea values. This change in functionality could
* be disabled by setting the compatible level to be "7.1", in
* which case the driver will revert to the 7.1 functionality.
*
* <p>Normally, at least
* "user" and "password" properties should be included in the
* properties. For a list of supported
* character encoding , see
* http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html
* Note that you will probably want to have set up the Postgres database
* itself to use the same encoding, with the "-E <encoding>" argument
* to createdb.
*
* Our protocol takes the forms:
* <PRE>
* jdbc:org.postgresql://host:port/database?param1=val1&...
* </PRE>
*
* @param url the URL of the database to connect to
* @param info a list of arbitrary tag/value pairs as connection
* arguments
* @return a connection to the URL or null if it isnt us
* @exception SQLException if a database access error occurs
* @see java.sql.Driver#connect
*/
public java.sql.Connection connect(String url, Properties info) throws SQLException
{
if ((props = parseURL(url, info)) == null)
{
Driver.debug("Error in url" + url);
return null;
}
try
{
Driver.debug("connect " + url);
org.postgresql.Connection con = (org.postgresql.Connection)(Class.forName("@JDBCCONNECTCLASS@").newInstance());
con.openConnection (host(), port(), props, database(), url, this);
return (java.sql.Connection)con;
}
catch (ClassNotFoundException ex)
{
Driver.debug("error", ex);
throw new PSQLException("postgresql.jvm.version", ex);
}
catch (PSQLException ex1)
{
// re-throw the exception, otherwise it will be caught next, and a
// org.postgresql.unusual error will be returned instead.
throw ex1;
}
catch (Exception ex2)
{
Driver.debug("error", ex2);
throw new PSQLException("postgresql.unusual", ex2);
}
} }
else if (state <= -2 && (count % 2) == 1) {
// PM Aug 2 1997 - added tests for ? and & /*
if (token.equals(";") || token.equals("?") || token.equals("&") ) state = -3; * Returns true if the driver thinks it can open a connection to the
else if (token.equals("=")) state = -5; * given URL. Typically, drivers will return true if they understand
* the subprotocol specified in the URL and false if they don't. Our
* protocols start with jdbc:org.postgresql:
*
* @see java.sql.Driver#acceptsURL
* @param url the URL of the driver
* @return true if this driver accepts the given URL
* @exception SQLException if a database-access error occurs
* (Dont know why it would *shrug*)
*/
public boolean acceptsURL(String url) throws SQLException
{
if (parseURL(url, null) == null)
return false;
return true;
} }
else if (state <= -2 && (count % 2) == 0) {
if (state == -3) key = token; /*
else if (state == -5) { * The getPropertyInfo method is intended to allow a generic GUI
value = token; * tool to discover what properties it should prompt a human for
//DriverManager.println("put("+key+","+value+")"); * in order to get enough information to connect to a database.
urlProps.put(key, value); *
state = -2; * <p>Note that depending on the values the human has supplied so
} * far, additional values may become necessary, so it may be necessary
* to iterate through several calls to getPropertyInfo
*
* @param url the Url of the database to connect to
* @param info a proposed list of tag/value pairs that will be sent on
* connect open.
* @return An array of DriverPropertyInfo objects describing
* possible properties. This array may be an empty array if
* no properties are required
* @exception SQLException if a database-access error occurs
* @see java.sql.Driver#getPropertyInfo
*/
public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException
{
Properties p = parseURL(url, info);
// naughty, but its best for speed. If anyone adds a property here, then
// this _MUST_ be increased to accomodate them.
DriverPropertyInfo d, dpi[] = new DriverPropertyInfo[0];
//int i=0;
//dpi[i++] = d = new DriverPropertyInfo("auth",p.getProperty("auth","default"));
//d.description = "determines if password authentication is used";
//d.choices = new String[4];
//d.choices[0]="default"; // Get value from org.postgresql.auth property, defaults to trust
//d.choices[1]="trust"; // No password authentication
//d.choices[2]="password"; // Password authentication
//d.choices[3]="ident"; // Ident (RFC 1413) protocol
return dpi;
}
/*
* Gets the drivers major version number
*
* @return the drivers major version number
*/
public int getMajorVersion()
{
return @MAJORVERSION@;
}
/*
* Get the drivers minor version number
*
* @return the drivers minor version number
*/
public int getMinorVersion()
{
return @MINORVERSION@;
}
/*
* Returns the VERSION variable from Makefile.global
*/
public static String getVersion()
{
return "@VERSION@";
}
/*
* Report whether the driver is a genuine JDBC compliant driver. A
* driver may only report "true" here if it passes the JDBC compliance
* tests, otherwise it is required to return false. JDBC compliance
* requires full support for the JDBC API and full support for SQL 92
* Entry Level.
*
* <p>For PostgreSQL, this is not yet possible, as we are not SQL92
* compliant (yet).
*/
public boolean jdbcCompliant()
{
return false;
}
private Properties props;
static private String[] protocols = { "jdbc", "postgresql" };
/*
* Constructs a new DriverURL, splitting the specified URL into its
* component parts
* @param url JDBC URL to parse
* @param defaults Default properties
* @return Properties with elements added from the url
* @exception SQLException
*/
Properties parseURL(String url, Properties defaults) throws SQLException
{
int state = -1;
Properties urlProps = new Properties(defaults);
String key = "";
String value = "";
StringTokenizer st = new StringTokenizer(url, ":/;=&?", true);
for (int count = 0; (st.hasMoreTokens()); count++)
{
String token = st.nextToken();
// PM June 29 1997
// Added this, to help me understand how this works.
// Unless you want each token to be processed, leave this commented out
// but don't delete it.
//DriverManager.println("wellFormedURL: state="+state+" count="+count+" token='"+token+"'");
// PM Aug 2 1997 - Modified to allow multiple backends
if (count <= 3)
{
if ((count % 2) == 1 && token.equals(":"))
;
else if ((count % 2) == 0)
{
boolean found = (count == 0) ? true : false;
for (int tmp = 0;tmp < protocols.length;tmp++)
{
if (token.equals(protocols[tmp]))
{
// PM June 29 1997 Added this property to enable the driver
// to handle multiple backend protocols.
if (count == 2 && tmp > 0)
{
urlProps.put("Protocol", token);
found = true;
}
}
}
if (found == false)
return null;
}
else
return null;
}
else if (count > 3)
{
if (count == 4 && token.equals("/"))
state = 0;
else if (count == 4)
{
urlProps.put("PGDBNAME", token);
state = -2;
}
else if (count == 5 && state == 0 && token.equals("/"))
state = 1;
else if (count == 5 && state == 0)
return null;
else if (count == 6 && state == 1)
urlProps.put("PGHOST", token);
else if (count == 7 && token.equals(":"))
state = 2;
else if (count == 8 && state == 2)
{
try
{
Integer portNumber = Integer.decode(token);
urlProps.put("PGPORT", portNumber.toString());
}
catch (Exception e)
{
return null;
}
}
else if ((count == 7 || count == 9) &&
(state == 1 || state == 2) && token.equals("/"))
state = -1;
else if (state == -1)
{
urlProps.put("PGDBNAME", token);
state = -2;
}
else if (state <= -2 && (count % 2) == 1)
{
// PM Aug 2 1997 - added tests for ? and &
if (token.equals(";") || token.equals("?") || token.equals("&") )
state = -3;
else if (token.equals("="))
state = -5;
}
else if (state <= -2 && (count % 2) == 0)
{
if (state == -3)
key = token;
else if (state == -5)
{
value = token;
//DriverManager.println("put("+key+","+value+")");
urlProps.put(key, value);
state = -2;
}
}
}
}
// PM June 29 1997
// This now outputs the properties only if we are logging
// PM Sep 13 1999 Commented out, as it throws a Deprecation warning
// when compiled under JDK1.2.
//if (DriverManager.getLogStream() != null)
// urlProps.list(DriverManager.getLogStream());
return urlProps;
}
/*
* @return the hostname portion of the URL
*/
public String host()
{
return props.getProperty("PGHOST", "localhost");
} }
}
}
// PM June 29 1997
// This now outputs the properties only if we are logging
// PM Sep 13 1999 Commented out, as it throws a Deprecation warning
// when compiled under JDK1.2.
//if(DriverManager.getLogStream() != null)
// urlProps.list(DriverManager.getLogStream());
return urlProps;
}
/**
* @return the hostname portion of the URL
*/
public String host()
{
return props.getProperty("PGHOST","localhost");
}
/**
* @return the port number portion of the URL or -1 if no port was specified
*/
public int port()
{
return Integer.parseInt(props.getProperty("PGPORT","@DEF_PGPORT@"));
}
/**
* @return the database name of the URL
*/
public String database()
{
return props.getProperty("PGDBNAME");
}
/**
* @return the value of any property specified in the URL or properties
* passed to connect(), or null if not found.
*/
public String property(String name)
{
return props.getProperty(name);
}
/**
* This method was added in v6.5, and simply throws an SQLException
* for an unimplemented method. I decided to do it this way while
* implementing the JDBC2 extensions to JDBC, as it should help keep the
* overall driver size down.
*/
public static SQLException notImplemented()
{
return new PSQLException("postgresql.unimplemented");
}
/**
* logging message at the debug level
* messages will be printed if the logging level is less or equal to DEBUG
*/
public static void debug(String msg)
{
if (logLevel <= DEBUG){
DriverManager.println(msg);
}
}
/**
* logging message at the debug level
* messages will be printed if the logging level is less or equal to DEBUG
*/
public static void debug(String msg, Exception ex)
{
if (logLevel <= DEBUG){
DriverManager.println(msg + ex != null?ex.getMessage():"null Exception");
}
}
/**
* logging message at info level
* messages will be printed if the logging level is less or equal to INFO
*/
public static void info(String msg)
{
if (logLevel <= INFO){
DriverManager.println(msg);
}
}
/**
* logging message at info level
* messages will be printed if the logging level is less or equal to INFO
*/
public static void info(String msg, Exception ex)
{
if (logLevel <= INFO){
DriverManager.println(msg + ex != null?ex.getMessage():"null Exception");
}
}
/**
* logging message at warn level
* messages will be printed if the logging level is less or equal to WARN
*/
public static void warn(String msg)
{
if (logLevel <= WARN){
DriverManager.println(msg);
}
}
/**
* logging message at warn level
* messages will be printed if the logging level is less or equal to WARN
*/
public static void warn(String msg, Exception ex)
{
if (logLevel <= WARN){
DriverManager.println(msg + ex != null?ex.getMessage():"null Exception");
}
}
/**
* logging message at error level
* messages will be printed if the logging level is less or equal to ERROR
*/
public static void error(String msg)
{
if (logLevel <= ERROR){
DriverManager.println(msg);
}
}
/**
* logging message at error level
* messages will be printed if the logging level is less or equal to ERROR
*/
public static void error(String msg, Exception ex)
{
if (logLevel <= ERROR){
DriverManager.println(msg + ex != null?ex.getMessage():"null Exception");
}
}
/**
* logging message at fatal level
* messages will be printed if the logging level is less or equal to FATAL
*/
public static void fatal(String msg)
{
if (logLevel <= FATAL){
DriverManager.println(msg);
}
}
/**
* logging message at fatal level
* messages will be printed if the logging level is less or equal to FATAL
*/
public static void fatal(String msg, Exception ex)
{
if (logLevel <= FATAL){
DriverManager.println(msg + ex != null?ex.getMessage():"null Exception");
}
}
}
/*
* @return the port number portion of the URL or -1 if no port was specified
*/
public int port()
{
return Integer.parseInt(props.getProperty("PGPORT", "@DEF_PGPORT@"));
}
/*
* @return the database name of the URL
*/
public String database()
{
return props.getProperty("PGDBNAME");
}
/*
* @return the value of any property specified in the URL or properties
* passed to connect(), or null if not found.
*/
public String property(String name)
{
return props.getProperty(name);
}
/*
* This method was added in v6.5, and simply throws an SQLException
* for an unimplemented method. I decided to do it this way while
* implementing the JDBC2 extensions to JDBC, as it should help keep the
* overall driver size down.
*/
public static SQLException notImplemented()
{
return new PSQLException("postgresql.unimplemented");
}
/*
* logging message at the debug level
* messages will be printed if the logging level is less or equal to DEBUG
*/
public static void debug(String msg)
{
if (logLevel <= DEBUG)
{
DriverManager.println(msg);
}
}
/*
* logging message at the debug level
* messages will be printed if the logging level is less or equal to DEBUG
*/
public static void debug(String msg, Exception ex)
{
if (logLevel <= DEBUG)
{
DriverManager.println(msg + ex != null ? ex.getMessage() : "null Exception");
}
}
/*
* logging message at info level
* messages will be printed if the logging level is less or equal to INFO
*/
public static void info(String msg)
{
if (logLevel <= INFO)
{
DriverManager.println(msg);
}
}
/*
* logging message at info level
* messages will be printed if the logging level is less or equal to INFO
*/
public static void info(String msg, Exception ex)
{
if (logLevel <= INFO)
{
DriverManager.println(msg + ex != null ? ex.getMessage() : "null Exception");
}
}
/*
* logging message at warn level
* messages will be printed if the logging level is less or equal to WARN
*/
public static void warn(String msg)
{
if (logLevel <= WARN)
{
DriverManager.println(msg);
}
}
/*
* logging message at warn level
* messages will be printed if the logging level is less or equal to WARN
*/
public static void warn(String msg, Exception ex)
{
if (logLevel <= WARN)
{
DriverManager.println(msg + ex != null ? ex.getMessage() : "null Exception");
}
}
/*
* logging message at error level
* messages will be printed if the logging level is less or equal to ERROR
*/
public static void error(String msg)
{
if (logLevel <= ERROR)
{
DriverManager.println(msg);
}
}
/*
* logging message at error level
* messages will be printed if the logging level is less or equal to ERROR
*/
public static void error(String msg, Exception ex)
{
if (logLevel <= ERROR)
{
DriverManager.println(msg + ex != null ? ex.getMessage() : "null Exception");
}
}
/*
* logging message at fatal level
* messages will be printed if the logging level is less or equal to FATAL
*/
public static void fatal(String msg)
{
if (logLevel <= FATAL)
{
DriverManager.println(msg);
}
}
/*
* logging message at fatal level
* messages will be printed if the logging level is less or equal to FATAL
*/
public static void fatal(String msg, Exception ex)
{
if (logLevel <= FATAL)
{
DriverManager.println(msg + ex != null ? ex.getMessage() : "null Exception");
}
}
}
...@@ -6,7 +6,7 @@ import java.util.*; ...@@ -6,7 +6,7 @@ import java.util.*;
import org.postgresql.*; import org.postgresql.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* org.postgresql.Field is a class used to describe fields in a PostgreSQL * org.postgresql.Field is a class used to describe fields in a PostgreSQL
* ResultSet * ResultSet
*/ */
...@@ -20,7 +20,7 @@ public class Field ...@@ -20,7 +20,7 @@ public class Field
private Connection conn; // Connection Instantation private Connection conn; // Connection Instantation
/** /*
* Construct a field based on the information fed to it. * Construct a field based on the information fed to it.
* *
* @param conn the connection this field came from * @param conn the connection this field came from
...@@ -37,7 +37,7 @@ public class Field ...@@ -37,7 +37,7 @@ public class Field
this.mod = mod; this.mod = mod;
} }
/** /*
* Constructor without mod parameter. * Constructor without mod parameter.
* *
* @param conn the connection this field came from * @param conn the connection this field came from
...@@ -50,7 +50,7 @@ public class Field ...@@ -50,7 +50,7 @@ public class Field
this(conn, name, oid, length, 0); this(conn, name, oid, length, 0);
} }
/** /*
* @return the oid of this Field's data type * @return the oid of this Field's data type
*/ */
public int getOID() public int getOID()
...@@ -58,7 +58,7 @@ public class Field ...@@ -58,7 +58,7 @@ public class Field
return oid; return oid;
} }
/** /*
* @return the mod of this Field's data type * @return the mod of this Field's data type
*/ */
public int getMod() public int getMod()
...@@ -66,7 +66,7 @@ public class Field ...@@ -66,7 +66,7 @@ public class Field
return mod; return mod;
} }
/** /*
* @return the name of this Field's data type * @return the name of this Field's data type
*/ */
public String getName() public String getName()
...@@ -74,7 +74,7 @@ public class Field ...@@ -74,7 +74,7 @@ public class Field
return name; return name;
} }
/** /*
* @return the length of this Field's data type * @return the length of this Field's data type
*/ */
public int getLength() public int getLength()
...@@ -82,7 +82,7 @@ public class Field ...@@ -82,7 +82,7 @@ public class Field
return length; return length;
} }
/** /*
* We also need to get the PG type name as returned by the back end. * We also need to get the PG type name as returned by the back end.
* *
* @return the String representation of the PG type of this field * @return the String representation of the PG type of this field
...@@ -93,7 +93,7 @@ public class Field ...@@ -93,7 +93,7 @@ public class Field
return conn.getPGType(oid); return conn.getPGType(oid);
} }
/** /*
* We also need to get the java.sql.types type. * We also need to get the java.sql.types type.
* *
* @return the int representation of the java.sql.types type of this field * @return the int representation of the java.sql.types type of this field
......
...@@ -9,8 +9,8 @@ import org.postgresql.*; ...@@ -9,8 +9,8 @@ import org.postgresql.*;
import org.postgresql.core.*; import org.postgresql.core.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* $Id: PG_Stream.java,v 1.14 2001/10/25 05:59:59 momjian Exp $ * $Id: PG_Stream.java,v 1.15 2001/11/19 22:33:37 momjian Exp $
* *
* This class is used by Connection & PGlobj for communicating with the * This class is used by Connection & PGlobj for communicating with the
* backend. * backend.
...@@ -28,7 +28,7 @@ public class PG_Stream ...@@ -28,7 +28,7 @@ public class PG_Stream
BytePoolDim1 bytePoolDim1 = new BytePoolDim1(); BytePoolDim1 bytePoolDim1 = new BytePoolDim1();
BytePoolDim2 bytePoolDim2 = new BytePoolDim2(); BytePoolDim2 bytePoolDim2 = new BytePoolDim2();
/** /*
* Constructor: Connect to the PostgreSQL back end and return * Constructor: Connect to the PostgreSQL back end and return
* a stream connection. * a stream connection.
* *
...@@ -49,7 +49,7 @@ public class PG_Stream ...@@ -49,7 +49,7 @@ public class PG_Stream
pg_output = new BufferedOutputStream(connection.getOutputStream(), 8192); pg_output = new BufferedOutputStream(connection.getOutputStream(), 8192);
} }
/** /*
* Sends a single character to the back end * Sends a single character to the back end
* *
* @param val the character to be sent * @param val the character to be sent
...@@ -60,7 +60,7 @@ public class PG_Stream ...@@ -60,7 +60,7 @@ public class PG_Stream
pg_output.write((byte)val); pg_output.write((byte)val);
} }
/** /*
* Sends an integer to the back end * Sends an integer to the back end
* *
* @param val the integer to be sent * @param val the integer to be sent
...@@ -79,7 +79,7 @@ public class PG_Stream ...@@ -79,7 +79,7 @@ public class PG_Stream
Send(buf); Send(buf);
} }
/** /*
* Send an array of bytes to the backend * Send an array of bytes to the backend
* *
* @param buf The array of bytes to be sent * @param buf The array of bytes to be sent
...@@ -90,7 +90,7 @@ public class PG_Stream ...@@ -90,7 +90,7 @@ public class PG_Stream
pg_output.write(buf); pg_output.write(buf);
} }
/** /*
* Send an exact array of bytes to the backend - if the length * Send an exact array of bytes to the backend - if the length
* has not been reached, send nulls until it has. * has not been reached, send nulls until it has.
* *
...@@ -103,7 +103,7 @@ public class PG_Stream ...@@ -103,7 +103,7 @@ public class PG_Stream
Send(buf, 0, siz); Send(buf, 0, siz);
} }
/** /*
* Send an exact array of bytes to the backend - if the length * Send an exact array of bytes to the backend - if the length
* has not been reached, send nulls until it has. * has not been reached, send nulls until it has.
* *
...@@ -126,7 +126,7 @@ public class PG_Stream ...@@ -126,7 +126,7 @@ public class PG_Stream
} }
} }
/** /*
* Receives a single character from the backend * Receives a single character from the backend
* *
* @return the character received * @return the character received
...@@ -149,7 +149,7 @@ public class PG_Stream ...@@ -149,7 +149,7 @@ public class PG_Stream
return c; return c;
} }
/** /*
* Receives an integer from the backend * Receives an integer from the backend
* *
* @param siz length of the integer in bytes * @param siz length of the integer in bytes
...@@ -178,7 +178,7 @@ public class PG_Stream ...@@ -178,7 +178,7 @@ public class PG_Stream
return n; return n;
} }
/** /*
* Receives an integer from the backend * Receives an integer from the backend
* *
* @param siz length of the integer in bytes * @param siz length of the integer in bytes
...@@ -207,7 +207,7 @@ public class PG_Stream ...@@ -207,7 +207,7 @@ public class PG_Stream
return n; return n;
} }
/** /*
* Receives a null-terminated string from the backend. If we don't see a * Receives a null-terminated string from the backend. If we don't see a
* null, then we assume something has gone wrong. * null, then we assume something has gone wrong.
* *
...@@ -258,7 +258,7 @@ public class PG_Stream ...@@ -258,7 +258,7 @@ public class PG_Stream
return encoding.decode(rst, 0, s); return encoding.decode(rst, 0, s);
} }
/** /*
* Read a tuple from the back end. A tuple is a two dimensional * Read a tuple from the back end. A tuple is a two dimensional
* array of bytes * array of bytes
* *
...@@ -301,7 +301,7 @@ public class PG_Stream ...@@ -301,7 +301,7 @@ public class PG_Stream
return answer; return answer;
} }
/** /*
* Reads in a given number of bytes from the backend * Reads in a given number of bytes from the backend
* *
* @param siz number of bytes to read * @param siz number of bytes to read
...@@ -315,7 +315,7 @@ public class PG_Stream ...@@ -315,7 +315,7 @@ public class PG_Stream
return answer; return answer;
} }
/** /*
* Reads in a given number of bytes from the backend * Reads in a given number of bytes from the backend
* *
* @param buf buffer to store result * @param buf buffer to store result
...@@ -343,7 +343,7 @@ public class PG_Stream ...@@ -343,7 +343,7 @@ public class PG_Stream
} }
} }
/** /*
* This flushes any pending output to the backend. It is used primarily * This flushes any pending output to the backend. It is used primarily
* by the Fastpath code. * by the Fastpath code.
* @exception SQLException if an I/O error occurs * @exception SQLException if an I/O error occurs
...@@ -360,7 +360,7 @@ public class PG_Stream ...@@ -360,7 +360,7 @@ public class PG_Stream
} }
} }
/** /*
* Closes the connection * Closes the connection
* *
* @exception IOException if a IO Error occurs * @exception IOException if a IO Error occurs
......
/** /*
* Redistribution and use of this software and associated documentation * Redistribution and use of this software and associated documentation
* ("Software"), with or without modification, are permitted provided * ("Software"), with or without modification, are permitted provided
* that the following conditions are met: * that the following conditions are met:
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
* *
* Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved. * Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved.
* *
* $Id: PostgresqlDataSource.java,v 1.3 2001/10/25 05:59:59 momjian Exp $ * $Id: PostgresqlDataSource.java,v 1.4 2001/11/19 22:33:37 momjian Exp $
*/ */
...@@ -71,7 +71,7 @@ import org.postgresql.util.PSQLException; ...@@ -71,7 +71,7 @@ import org.postgresql.util.PSQLException;
import org.postgresql.xa.XADataSourceImpl; import org.postgresql.xa.XADataSourceImpl;
//--------- //---------
/** /*
* Implements a JDBC 2.0 {@link javax.sql.DataSource} for the * Implements a JDBC 2.0 {@link javax.sql.DataSource} for the
* PostgreSQL driver with JNDI persistance support. XA and pooled * PostgreSQL driver with JNDI persistance support. XA and pooled
* connection support is also available, but the application must * connection support is also available, but the application must
...@@ -127,45 +127,45 @@ public class PostgresqlDataSource ...@@ -127,45 +127,45 @@ public class PostgresqlDataSource
{ {
/** /*
* Holds the timeout for opening a new connection, specified * Holds the timeout for opening a new connection, specified
* in seconds. The default is obtained from the JDBC driver. * in seconds. The default is obtained from the JDBC driver.
*/ */
private int _loginTimeout; private int _loginTimeout;
/** /*
* Holds the user's account name. * Holds the user's account name.
*/ */
private String _user; private String _user;
/** /*
* Holds the database password. * Holds the database password.
*/ */
private String _password; private String _password;
/** /*
* Holds the name of the particular database on the server. * Holds the name of the particular database on the server.
*/ */
private String _databaseName; private String _databaseName;
/** /*
* Description of this datasource. * Description of this datasource.
*/ */
private String _description = "PostgreSQL DataSource"; private String _description = "PostgreSQL DataSource";
/** /*
* Holds the database server name. If null, this is * Holds the database server name. If null, this is
* assumed to be the localhost. * assumed to be the localhost.
*/ */
private String _serverName; private String _serverName;
/** /*
* Holds the port number where a server is listening. * Holds the port number where a server is listening.
* The default value will open a connection with an * The default value will open a connection with an
* unspecified port. * unspecified port.
...@@ -173,7 +173,7 @@ public class PostgresqlDataSource ...@@ -173,7 +173,7 @@ public class PostgresqlDataSource
private int _portNumber = DEFAULT_PORT; private int _portNumber = DEFAULT_PORT;
/** /*
* The default port number. Since we open the connection * The default port number. Since we open the connection
* without specifying the port if it's the default one, * without specifying the port if it's the default one,
* this value can be meaningless. * this value can be meaningless.
...@@ -181,7 +181,7 @@ public class PostgresqlDataSource ...@@ -181,7 +181,7 @@ public class PostgresqlDataSource
private static final int DEFAULT_PORT = 0; private static final int DEFAULT_PORT = 0;
/** /*
* Holds the log writer to which all messages should be * Holds the log writer to which all messages should be
* printed. The default writer is obtained from the driver * printed. The default writer is obtained from the driver
* manager, but it can be specified at the datasource level * manager, but it can be specified at the datasource level
...@@ -190,7 +190,7 @@ public class PostgresqlDataSource ...@@ -190,7 +190,7 @@ public class PostgresqlDataSource
private transient PrintWriter _logWriter; private transient PrintWriter _logWriter;
/** /*
* Each datasource maintains it's own driver, in case of * Each datasource maintains it's own driver, in case of
* driver-specific setup (e.g. pools, log writer). * driver-specific setup (e.g. pools, log writer).
*/ */
...@@ -335,7 +335,7 @@ public class PostgresqlDataSource ...@@ -335,7 +335,7 @@ public class PostgresqlDataSource
} }
/** /*
* Sets the name of the particular database on the server. * Sets the name of the particular database on the server.
* The standard name for this property is <tt>databaseName</tt>. * The standard name for this property is <tt>databaseName</tt>.
* *
...@@ -349,7 +349,7 @@ public class PostgresqlDataSource ...@@ -349,7 +349,7 @@ public class PostgresqlDataSource
} }
/** /*
* Returns the name of the particular database on the server. * Returns the name of the particular database on the server.
* The standard name for this property is <tt>databaseName</tt>. * The standard name for this property is <tt>databaseName</tt>.
* *
...@@ -361,7 +361,7 @@ public class PostgresqlDataSource ...@@ -361,7 +361,7 @@ public class PostgresqlDataSource
} }
/** /*
* Sets the description of this datasource. * Sets the description of this datasource.
* The standard name for this property is <tt>description</tt>. * The standard name for this property is <tt>description</tt>.
* *
...@@ -375,7 +375,7 @@ public class PostgresqlDataSource ...@@ -375,7 +375,7 @@ public class PostgresqlDataSource
} }
/** /*
* Returns the description of this datasource. * Returns the description of this datasource.
* The standard name for this property is <tt>description</tt>. * The standard name for this property is <tt>description</tt>.
* *
...@@ -387,7 +387,7 @@ public class PostgresqlDataSource ...@@ -387,7 +387,7 @@ public class PostgresqlDataSource
} }
/** /*
* Sets the database password. * Sets the database password.
* The standard name for this property is <tt>password</tt>. * The standard name for this property is <tt>password</tt>.
* *
...@@ -399,7 +399,7 @@ public class PostgresqlDataSource ...@@ -399,7 +399,7 @@ public class PostgresqlDataSource
} }
/** /*
* Returns the database password. * Returns the database password.
* The standard name for this property is <tt>password</tt>. * The standard name for this property is <tt>password</tt>.
* *
...@@ -411,7 +411,7 @@ public class PostgresqlDataSource ...@@ -411,7 +411,7 @@ public class PostgresqlDataSource
} }
/** /*
* Sets the port number where a server is listening. * Sets the port number where a server is listening.
* The standard name for this property is <tt>portNumber</tt>. * The standard name for this property is <tt>portNumber</tt>.
* *
...@@ -423,7 +423,7 @@ public class PostgresqlDataSource ...@@ -423,7 +423,7 @@ public class PostgresqlDataSource
} }
/** /*
* Returns the port number where a server is listening. * Returns the port number where a server is listening.
* The standard name for this property is <tt>portNumber</tt>. * The standard name for this property is <tt>portNumber</tt>.
* *
...@@ -435,7 +435,7 @@ public class PostgresqlDataSource ...@@ -435,7 +435,7 @@ public class PostgresqlDataSource
} }
/** /*
* Sets the database server name. * Sets the database server name.
* The standard name for this property is <tt>serverName</tt>. * The standard name for this property is <tt>serverName</tt>.
...@@ -448,7 +448,7 @@ public class PostgresqlDataSource ...@@ -448,7 +448,7 @@ public class PostgresqlDataSource
} }
/** /*
* Returns the database server name. * Returns the database server name.
* The standard name for this property is <tt>serverName</tt>. * The standard name for this property is <tt>serverName</tt>.
* *
...@@ -460,7 +460,7 @@ public class PostgresqlDataSource ...@@ -460,7 +460,7 @@ public class PostgresqlDataSource
} }
/** /*
* Sets the user's account name. * Sets the user's account name.
* The standard name for this property is <tt>user</tt>. * The standard name for this property is <tt>user</tt>.
* *
...@@ -472,7 +472,7 @@ public class PostgresqlDataSource ...@@ -472,7 +472,7 @@ public class PostgresqlDataSource
} }
/** /*
* Returns the user's account name. * Returns the user's account name.
* The standard name for this property is <tt>user</tt>. * The standard name for this property is <tt>user</tt>.
* *
...@@ -484,7 +484,7 @@ public class PostgresqlDataSource ...@@ -484,7 +484,7 @@ public class PostgresqlDataSource
} }
/** /*
* Returns true if this datasource and the other are equal. * Returns true if this datasource and the other are equal.
* The two datasources are equal if and only if they will produce * The two datasources are equal if and only if they will produce
* the exact same connections. Connection properties like database * the exact same connections. Connection properties like database
......
...@@ -9,7 +9,7 @@ import java.sql.*; ...@@ -9,7 +9,7 @@ import java.sql.*;
import org.postgresql.largeobject.*; import org.postgresql.largeobject.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* This class implements the common internal methods used by both JDBC 1 and * This class implements the common internal methods used by both JDBC 1 and
* JDBC 2 specifications. * JDBC 2 specifications.
*/ */
...@@ -31,7 +31,7 @@ public abstract class ResultSet ...@@ -31,7 +31,7 @@ public abstract class ResultSet
// next resultSet in the chain. // next resultSet in the chain.
protected ResultSet next = null; protected ResultSet next = null;
/** /*
* Create a new ResultSet - Note that we create ResultSets to * Create a new ResultSet - Note that we create ResultSets to
* represent the results of everything. * represent the results of everything.
* *
...@@ -56,7 +56,7 @@ public abstract class ResultSet ...@@ -56,7 +56,7 @@ public abstract class ResultSet
} }
/** /*
* Create a new ResultSet - Note that we create ResultSets to * Create a new ResultSet - Note that we create ResultSets to
* represent the results of everything. * represent the results of everything.
* *
...@@ -72,7 +72,7 @@ public abstract class ResultSet ...@@ -72,7 +72,7 @@ public abstract class ResultSet
this(conn, fields, tuples, status, updateCount, 0, false); this(conn, fields, tuples, status, updateCount, 0, false);
} }
/** /*
* We at times need to know if the resultSet we are working * We at times need to know if the resultSet we are working
* with is the result of an UPDATE, DELETE or INSERT (in which * with is the result of an UPDATE, DELETE or INSERT (in which
* case, we only have a row count), or of a SELECT operation * case, we only have a row count), or of a SELECT operation
...@@ -86,7 +86,7 @@ public abstract class ResultSet ...@@ -86,7 +86,7 @@ public abstract class ResultSet
return (fields != null); return (fields != null);
} }
/** /*
* Since ResultSets can be chained, we need some method of * Since ResultSets can be chained, we need some method of
* finding the next one in the chain. The method getNext() * finding the next one in the chain. The method getNext()
* returns the next one in the chain. * returns the next one in the chain.
...@@ -98,7 +98,7 @@ public abstract class ResultSet ...@@ -98,7 +98,7 @@ public abstract class ResultSet
return (java.sql.ResultSet)next; return (java.sql.ResultSet)next;
} }
/** /*
* This following method allows us to add a ResultSet object * This following method allows us to add a ResultSet object
* to the end of the current chain. * to the end of the current chain.
* *
...@@ -112,7 +112,7 @@ public abstract class ResultSet ...@@ -112,7 +112,7 @@ public abstract class ResultSet
next.append(r); next.append(r);
} }
/** /*
* If we are just a place holder for results, we still need * If we are just a place holder for results, we still need
* to get an updateCount. This method returns it. * to get an updateCount. This method returns it.
* *
...@@ -123,7 +123,7 @@ public abstract class ResultSet ...@@ -123,7 +123,7 @@ public abstract class ResultSet
return updateCount; return updateCount;
} }
/** /*
* We also need to provide a couple of auxiliary functions for * We also need to provide a couple of auxiliary functions for
* the implementation of the ResultMetaData functions. In * the implementation of the ResultMetaData functions. In
* particular, we need to know the number of rows and the * particular, we need to know the number of rows and the
...@@ -136,7 +136,7 @@ public abstract class ResultSet ...@@ -136,7 +136,7 @@ public abstract class ResultSet
return rows.size(); return rows.size();
} }
/** /*
* getColumnCount returns the number of columns * getColumnCount returns the number of columns
* *
* @return the number of columns * @return the number of columns
...@@ -146,7 +146,7 @@ public abstract class ResultSet ...@@ -146,7 +146,7 @@ public abstract class ResultSet
return fields.length; return fields.length;
} }
/** /*
* Returns the status message from the backend.<p> * Returns the status message from the backend.<p>
* It is used internally by the driver. * It is used internally by the driver.
* *
...@@ -157,7 +157,7 @@ public abstract class ResultSet ...@@ -157,7 +157,7 @@ public abstract class ResultSet
return status; return status;
} }
/** /*
* returns the OID of a field.<p> * returns the OID of a field.<p>
* It is used internally by the driver. * It is used internally by the driver.
* *
...@@ -169,7 +169,7 @@ public abstract class ResultSet ...@@ -169,7 +169,7 @@ public abstract class ResultSet
return fields[field -1].getOID(); return fields[field -1].getOID();
} }
/** /*
* returns the OID of the last inserted row * returns the OID of the last inserted row
*/ */
public int getInsertedOID() public int getInsertedOID()
...@@ -177,14 +177,14 @@ public abstract class ResultSet ...@@ -177,14 +177,14 @@ public abstract class ResultSet
return insertOID; return insertOID;
} }
/** /*
* This is part of the JDBC API, but is required by org.postgresql.Field * This is part of the JDBC API, but is required by org.postgresql.Field
*/ */
public abstract void close() throws SQLException; public abstract void close() throws SQLException;
public abstract boolean next() throws SQLException; public abstract boolean next() throws SQLException;
public abstract String getString(int i) throws SQLException; public abstract String getString(int i) throws SQLException;
/** /*
* This is used to fix get*() methods on Money fields. It should only be * This is used to fix get*() methods on Money fields. It should only be
* used by those methods! * used by those methods!
* *
......
...@@ -3,7 +3,7 @@ package org.postgresql; ...@@ -3,7 +3,7 @@ package org.postgresql;
import java.sql.*; import java.sql.*;
import org.postgresql.util.PSQLException; import org.postgresql.util.PSQLException;
/** /*
* This class defines methods implemented by the two subclasses * This class defines methods implemented by the two subclasses
* org.postgresql.jdbc1.Statement and org.postgresql.jdbc2.Statement that are * org.postgresql.jdbc1.Statement and org.postgresql.jdbc2.Statement that are
* unique to PostgreSQL's JDBC driver. * unique to PostgreSQL's JDBC driver.
...@@ -49,7 +49,7 @@ public abstract class Statement ...@@ -49,7 +49,7 @@ public abstract class Statement
public Statement() public Statement()
{} {}
/** /*
* Returns the status message from the current Result.<p> * Returns the status message from the current Result.<p>
* This is used internally by the driver. * This is used internally by the driver.
* *
...@@ -62,7 +62,7 @@ public abstract class Statement ...@@ -62,7 +62,7 @@ public abstract class Statement
return ((org.postgresql.ResultSet) result).getStatusString(); return ((org.postgresql.ResultSet) result).getStatusString();
} }
/** /*
* The maxRows limit is set to limit the number of rows that * The maxRows limit is set to limit the number of rows that
* any ResultSet can contain. If the limit is exceeded, the * any ResultSet can contain. If the limit is exceeded, the
* excess rows are silently dropped. * excess rows are silently dropped.
...@@ -75,7 +75,7 @@ public abstract class Statement ...@@ -75,7 +75,7 @@ public abstract class Statement
return maxrows; return maxrows;
} }
/** /*
* Set the maximum number of rows * Set the maximum number of rows
* *
* @param max the new max rows limit; zero means unlimited * @param max the new max rows limit; zero means unlimited
...@@ -87,7 +87,7 @@ public abstract class Statement ...@@ -87,7 +87,7 @@ public abstract class Statement
maxrows = max; maxrows = max;
} }
/** /*
* If escape scanning is on (the default), the driver will do escape * If escape scanning is on (the default), the driver will do escape
* substitution before sending the SQL to the database. * substitution before sending the SQL to the database.
* *
...@@ -99,7 +99,7 @@ public abstract class Statement ...@@ -99,7 +99,7 @@ public abstract class Statement
escapeProcessing = enable; escapeProcessing = enable;
} }
/** /*
* The queryTimeout limit is the number of seconds the driver * The queryTimeout limit is the number of seconds the driver
* will wait for a Statement to execute. If the limit is * will wait for a Statement to execute. If the limit is
* exceeded, a SQLException is thrown. * exceeded, a SQLException is thrown.
...@@ -112,7 +112,7 @@ public abstract class Statement ...@@ -112,7 +112,7 @@ public abstract class Statement
return timeout; return timeout;
} }
/** /*
* Sets the queryTimeout limit * Sets the queryTimeout limit
* *
* @param seconds - the new query timeout limit in seconds * @param seconds - the new query timeout limit in seconds
...@@ -123,7 +123,7 @@ public abstract class Statement ...@@ -123,7 +123,7 @@ public abstract class Statement
timeout = seconds; timeout = seconds;
} }
/** /*
* The first warning reported by calls on this Statement is * The first warning reported by calls on this Statement is
* returned. A Statement's execute methods clear its SQLWarning * returned. A Statement's execute methods clear its SQLWarning
* chain. Subsequent Statement warnings will be chained to this * chain. Subsequent Statement warnings will be chained to this
...@@ -144,7 +144,7 @@ public abstract class Statement ...@@ -144,7 +144,7 @@ public abstract class Statement
return warnings; return warnings;
} }
/** /*
* The maxFieldSize limit (in bytes) is the maximum amount of * The maxFieldSize limit (in bytes) is the maximum amount of
* data returned for any column value; it only applies to * data returned for any column value; it only applies to
* BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR and LONGVARCHAR * BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR and LONGVARCHAR
...@@ -159,7 +159,7 @@ public abstract class Statement ...@@ -159,7 +159,7 @@ public abstract class Statement
return 8192; // We cannot change this return 8192; // We cannot change this
} }
/** /*
* Sets the maxFieldSize - NOT! - We throw an SQLException just * Sets the maxFieldSize - NOT! - We throw an SQLException just
* to inform them to stop doing this. * to inform them to stop doing this.
* *
...@@ -171,7 +171,7 @@ public abstract class Statement ...@@ -171,7 +171,7 @@ public abstract class Statement
throw new PSQLException("postgresql.stat.maxfieldsize"); throw new PSQLException("postgresql.stat.maxfieldsize");
} }
/** /*
* After this call, getWarnings returns null until a new warning * After this call, getWarnings returns null until a new warning
* is reported for this Statement. * is reported for this Statement.
* *
...@@ -182,7 +182,7 @@ public abstract class Statement ...@@ -182,7 +182,7 @@ public abstract class Statement
warnings = null; warnings = null;
} }
/** /*
* Cancel can be used by one thread to cancel a statement that * Cancel can be used by one thread to cancel a statement that
* is being executed by another thread. * is being executed by another thread.
* <p> * <p>
...@@ -195,7 +195,7 @@ public abstract class Statement ...@@ -195,7 +195,7 @@ public abstract class Statement
// FIXME: Cancel feature has been available since 6.4. Implement it here! // FIXME: Cancel feature has been available since 6.4. Implement it here!
} }
/** /*
* New in 7.1: Returns the Last inserted oid. This should be used, rather * New in 7.1: Returns the Last inserted oid. This should be used, rather
* than the old method using getResultSet, which for executeUpdate returns * than the old method using getResultSet, which for executeUpdate returns
* null. * null.
...@@ -208,7 +208,7 @@ public abstract class Statement ...@@ -208,7 +208,7 @@ public abstract class Statement
return ((org.postgresql.ResultSet) result).getInsertedOID(); return ((org.postgresql.ResultSet) result).getInsertedOID();
} }
/** /*
* getResultSet returns the current result as a ResultSet. It * getResultSet returns the current result as a ResultSet. It
* should only be called once per result. * should only be called once per result.
* *
...@@ -222,7 +222,7 @@ public abstract class Statement ...@@ -222,7 +222,7 @@ public abstract class Statement
return null; return null;
} }
/** /*
* In many cases, it is desirable to immediately release a * In many cases, it is desirable to immediately release a
* Statement's database and JDBC resources instead of waiting * Statement's database and JDBC resources instead of waiting
* for this to happen when it is automatically closed. The * for this to happen when it is automatically closed. The
...@@ -245,7 +245,7 @@ public abstract class Statement ...@@ -245,7 +245,7 @@ public abstract class Statement
result = null; result = null;
} }
/** /*
* Filter the SQL string of Java SQL Escape clauses. * Filter the SQL string of Java SQL Escape clauses.
* *
* Currently implemented Escape clauses are those mentioned in 11.3 * Currently implemented Escape clauses are those mentioned in 11.3
......
package org.postgresql.core; package org.postgresql.core;
/** /*
* A simple and efficient class to pool one dimensional byte arrays * A simple and efficient class to pool one dimensional byte arrays
* of different sizes. * of different sizes.
*/ */
public class BytePoolDim1 public class BytePoolDim1
{ {
/** /*
* The maximum size of the array we manage. * The maximum size of the array we manage.
*/ */
int maxsize = 256; int maxsize = 256;
/** /*
* The pools not currently in use * The pools not currently in use
*/ */
ObjectPool notusemap[] = new ObjectPool[maxsize + 1]; ObjectPool notusemap[] = new ObjectPool[maxsize + 1];
/** /*
* The pools currently in use * The pools currently in use
*/ */
ObjectPool inusemap[] = new ObjectPool[maxsize + 1]; ObjectPool inusemap[] = new ObjectPool[maxsize + 1];
/** /*
* *
*/ */
byte binit[][] = new byte[maxsize + 1][0]; byte binit[][] = new byte[maxsize + 1][0];
/** /*
* Construct a new pool * Construct a new pool
*/ */
public BytePoolDim1() public BytePoolDim1()
...@@ -37,7 +37,7 @@ public class BytePoolDim1 ...@@ -37,7 +37,7 @@ public class BytePoolDim1
} }
} }
/** /*
* Allocate a byte[] of a specified size and put it in the pool. If it's * Allocate a byte[] of a specified size and put it in the pool. If it's
* larger than maxsize then it is not pooled. * larger than maxsize then it is not pooled.
* @return the byte[] allocated * @return the byte[] allocated
...@@ -48,7 +48,7 @@ public class BytePoolDim1 ...@@ -48,7 +48,7 @@ public class BytePoolDim1
return new byte[size]; return new byte[size];
/* /*
// Don't pool if >maxsize // Don't pool if >maxsize
if(size > maxsize){ if (size > maxsize){
return new byte[size]; return new byte[size];
} }
...@@ -58,7 +58,7 @@ public class BytePoolDim1 ...@@ -58,7 +58,7 @@ public class BytePoolDim1
// Fetch from the unused pool if available otherwise allocate a new // Fetch from the unused pool if available otherwise allocate a new
// now array // now array
if(!not_usel.isEmpty()) { if (!not_usel.isEmpty()) {
Object o = not_usel.remove(); Object o = not_usel.remove();
b = (byte[]) o; b = (byte[]) o;
} else } else
...@@ -69,7 +69,7 @@ public class BytePoolDim1 ...@@ -69,7 +69,7 @@ public class BytePoolDim1
*/ */
} }
/** /*
* Release an array * Release an array
* @param b byte[] to release * @param b byte[] to release
*/ */
...@@ -86,7 +86,7 @@ public class BytePoolDim1 ...@@ -86,7 +86,7 @@ public class BytePoolDim1
not_usel.add(b); not_usel.add(b);
} }
/** /*
* Deallocate all * Deallocate all
* @deprecated Real bad things happen if this is called! * @deprecated Real bad things happen if this is called!
*/ */
......
...@@ -20,7 +20,7 @@ public class BytePoolDim2 ...@@ -20,7 +20,7 @@ public class BytePoolDim2
// For now until the bug can be removed // For now until the bug can be removed
return new byte[size][0]; return new byte[size][0];
/* /*
if(size > maxsize){ if (size > maxsize){
return new byte[size][0]; return new byte[size][0];
} }
ObjectPool not_usel = notusemap[size]; ObjectPool not_usel = notusemap[size];
...@@ -28,7 +28,7 @@ public class BytePoolDim2 ...@@ -28,7 +28,7 @@ public class BytePoolDim2
byte b[][] = null; byte b[][] = null;
if(!not_usel.isEmpty()) { if (!not_usel.isEmpty()) {
Object o = not_usel.remove(); Object o = not_usel.remove();
b = (byte[][]) o; b = (byte[][]) o;
} else } else
...@@ -51,7 +51,7 @@ public class BytePoolDim2 ...@@ -51,7 +51,7 @@ public class BytePoolDim2
not_usel.add(b); not_usel.add(b);
} }
/** /*
* Deallocate the object cache. * Deallocate the object cache.
* PM 17/01/01: Commented out this code as it blows away any hope of * PM 17/01/01: Commented out this code as it blows away any hope of
* multiple queries on the same connection. I'll redesign the allocation * multiple queries on the same connection. I'll redesign the allocation
......
...@@ -5,10 +5,10 @@ import java.util.*; ...@@ -5,10 +5,10 @@ import java.util.*;
import java.sql.SQLException; import java.sql.SQLException;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* Converts to and from the character encoding used by the backend. * Converts to and from the character encoding used by the backend.
* *
* $Id: Encoding.java,v 1.3 2001/10/25 05:59:59 momjian Exp $ * $Id: Encoding.java,v 1.4 2001/11/19 22:33:37 momjian Exp $
*/ */
public class Encoding public class Encoding
...@@ -16,7 +16,7 @@ public class Encoding ...@@ -16,7 +16,7 @@ public class Encoding
private static final Encoding DEFAULT_ENCODING = new Encoding(null); private static final Encoding DEFAULT_ENCODING = new Encoding(null);
/** /*
* Preferred JVM encodings for backend encodings. * Preferred JVM encodings for backend encodings.
*/ */
private static final Hashtable encodings = new Hashtable(); private static final Hashtable encodings = new Hashtable();
...@@ -65,7 +65,7 @@ public class Encoding ...@@ -65,7 +65,7 @@ public class Encoding
this.encoding = encoding; this.encoding = encoding;
} }
/** /*
* Get an Encoding for from the given database encoding and * Get an Encoding for from the given database encoding and
* the encoding passed in by the user. * the encoding passed in by the user.
*/ */
...@@ -89,7 +89,7 @@ public class Encoding ...@@ -89,7 +89,7 @@ public class Encoding
} }
} }
/** /*
* Get an Encoding matching the given database encoding. * Get an Encoding matching the given database encoding.
*/ */
private static Encoding encodingForDatabaseEncoding(String databaseEncoding) private static Encoding encodingForDatabaseEncoding(String databaseEncoding)
...@@ -112,7 +112,7 @@ public class Encoding ...@@ -112,7 +112,7 @@ public class Encoding
return defaultEncoding(); return defaultEncoding();
} }
/** /*
* Name of the (JVM) encoding used. * Name of the (JVM) encoding used.
*/ */
public String name() public String name()
...@@ -120,7 +120,7 @@ public class Encoding ...@@ -120,7 +120,7 @@ public class Encoding
return encoding; return encoding;
} }
/** /*
* Encode a string to an array of bytes. * Encode a string to an array of bytes.
*/ */
public byte[] encode(String s) throws SQLException public byte[] encode(String s) throws SQLException
...@@ -142,7 +142,7 @@ public class Encoding ...@@ -142,7 +142,7 @@ public class Encoding
} }
} }
/** /*
* Decode an array of bytes into a string. * Decode an array of bytes into a string.
*/ */
public String decode(byte[] encodedString, int offset, int length) throws SQLException public String decode(byte[] encodedString, int offset, int length) throws SQLException
...@@ -164,7 +164,7 @@ public class Encoding ...@@ -164,7 +164,7 @@ public class Encoding
} }
} }
/** /*
* Decode an array of bytes into a string. * Decode an array of bytes into a string.
*/ */
public String decode(byte[] encodedString) throws SQLException public String decode(byte[] encodedString) throws SQLException
...@@ -172,7 +172,7 @@ public class Encoding ...@@ -172,7 +172,7 @@ public class Encoding
return decode(encodedString, 0, encodedString.length); return decode(encodedString, 0, encodedString.length);
} }
/** /*
* Get a Reader that decodes the given InputStream. * Get a Reader that decodes the given InputStream.
*/ */
public Reader getDecodingReader(InputStream in) throws SQLException public Reader getDecodingReader(InputStream in) throws SQLException
...@@ -194,7 +194,7 @@ public class Encoding ...@@ -194,7 +194,7 @@ public class Encoding
} }
} }
/** /*
* Get an Encoding using the default encoding for the JVM. * Get an Encoding using the default encoding for the JVM.
*/ */
public static Encoding defaultEncoding() public static Encoding defaultEncoding()
...@@ -202,7 +202,7 @@ public class Encoding ...@@ -202,7 +202,7 @@ public class Encoding
return DEFAULT_ENCODING; return DEFAULT_ENCODING;
} }
/** /*
* Test if an encoding is available in the JVM. * Test if an encoding is available in the JVM.
*/ */
private static boolean isAvailable(String encodingName) private static boolean isAvailable(String encodingName)
......
package org.postgresql.core; package org.postgresql.core;
/** /*
* This interface defines the methods to access the memory pool classes. * This interface defines the methods to access the memory pool classes.
*/ */
public interface MemoryPool public interface MemoryPool
{ {
/** /*
* Allocate an array from the pool * Allocate an array from the pool
* @return byte[] allocated * @return byte[] allocated
*/ */
public byte[] allocByte(int size); public byte[] allocByte(int size);
/** /*
* Frees an object back to the pool * Frees an object back to the pool
* @param o Object to release * @param o Object to release
*/ */
......
package org.postgresql.core; package org.postgresql.core;
/** /*
* This interface defines methods needed to implement a simple object pool. * This interface defines methods needed to implement a simple object pool.
* There are two known classes that implement this, one for jdk1.1 and the * There are two known classes that implement this, one for jdk1.1 and the
* other for jdk1.2+ * other for jdk1.2+
...@@ -8,41 +8,41 @@ package org.postgresql.core; ...@@ -8,41 +8,41 @@ package org.postgresql.core;
public interface ObjectPool public interface ObjectPool
{ {
/** /*
* Adds an object to the pool * Adds an object to the pool
* @param o Object to add * @param o Object to add
*/ */
public void add(Object o); public void add(Object o);
/** /*
* Removes an object from the pool * Removes an object from the pool
* @param o Object to remove * @param o Object to remove
*/ */
public void remove(Object o); public void remove(Object o);
/** /*
* Removes the top object from the pool * Removes the top object from the pool
* @return Object from the top. * @return Object from the top.
*/ */
public Object remove(); public Object remove();
/** /*
* @return true if the pool is empty * @return true if the pool is empty
*/ */
public boolean isEmpty(); public boolean isEmpty();
/** /*
* @return the number of objects in the pool * @return the number of objects in the pool
*/ */
public int size(); public int size();
/** /*
* Adds all objects in one pool to this one * Adds all objects in one pool to this one
* @param pool The pool to take the objects from * @param pool The pool to take the objects from
*/ */
public void addAll(ObjectPool pool); public void addAll(ObjectPool pool);
/** /*
* Clears the pool of all objects * Clears the pool of all objects
*/ */
public void clear(); public void clear();
......
...@@ -7,13 +7,13 @@ import java.sql.*; ...@@ -7,13 +7,13 @@ import java.sql.*;
import org.postgresql.*; import org.postgresql.*;
import org.postgresql.util.PSQLException; import org.postgresql.util.PSQLException;
/** /*
* Executes a query on the backend. * Executes a query on the backend.
* *
* <p>The lifetime of a QueryExecutor object is from sending the query * <p>The lifetime of a QueryExecutor object is from sending the query
* until the response has been received from the backend. * until the response has been received from the backend.
* *
* $Id: QueryExecutor.java,v 1.3 2001/10/25 05:59:59 momjian Exp $ * $Id: QueryExecutor.java,v 1.4 2001/11/19 22:33:37 momjian Exp $
*/ */
public class QueryExecutor public class QueryExecutor
...@@ -49,7 +49,7 @@ public class QueryExecutor ...@@ -49,7 +49,7 @@ public class QueryExecutor
private int insert_oid = 0; private int insert_oid = 0;
private int maxRows; private int maxRows;
/** /*
* Execute a query on the backend. * Execute a query on the backend.
*/ */
public java.sql.ResultSet execute() throws SQLException public java.sql.ResultSet execute() throws SQLException
...@@ -122,7 +122,7 @@ public class QueryExecutor ...@@ -122,7 +122,7 @@ public class QueryExecutor
} }
} }
/** /*
* Send a query to the backend. * Send a query to the backend.
*/ */
private void sendQuery(String query) throws SQLException private void sendQuery(String query) throws SQLException
...@@ -141,7 +141,7 @@ public class QueryExecutor ...@@ -141,7 +141,7 @@ public class QueryExecutor
} }
} }
/** /*
* Receive a tuple from the backend. * Receive a tuple from the backend.
* *
* @param isBinary set if the tuple should be treated as binary data * @param isBinary set if the tuple should be treated as binary data
...@@ -157,7 +157,7 @@ public class QueryExecutor ...@@ -157,7 +157,7 @@ public class QueryExecutor
tuples.addElement(tuple); tuples.addElement(tuple);
} }
/** /*
* Receive command status from the backend. * Receive command status from the backend.
*/ */
private void receiveCommandStatus() throws SQLException private void receiveCommandStatus() throws SQLException
...@@ -184,7 +184,7 @@ public class QueryExecutor ...@@ -184,7 +184,7 @@ public class QueryExecutor
} }
} }
/** /*
* Receive the field descriptions from the back end. * Receive the field descriptions from the back end.
*/ */
private void receiveFields() throws SQLException private void receiveFields() throws SQLException
......
package org.postgresql.core; package org.postgresql.core;
/** /*
* A simple and fast object pool implementation that can pool objects * A simple and fast object pool implementation that can pool objects
* of any type. This implementation is not thread safe, it is up to the users * of any type. This implementation is not thread safe, it is up to the users
* of this class to assure thread safety. * of this class to assure thread safety.
...@@ -15,7 +15,7 @@ public class SimpleObjectPool implements ObjectPool ...@@ -15,7 +15,7 @@ public class SimpleObjectPool implements ObjectPool
int maxsize = 16; int maxsize = 16;
Object arr[] = new Object[maxsize]; Object arr[] = new Object[maxsize];
/** /*
* Adds an object to the pool * Adds an object to the pool
* @param o Object to add * @param o Object to add
*/ */
...@@ -31,7 +31,7 @@ public class SimpleObjectPool implements ObjectPool ...@@ -31,7 +31,7 @@ public class SimpleObjectPool implements ObjectPool
arr[cursize++] = o; arr[cursize++] = o;
} }
/** /*
* Removes the top object from the pool * Removes the top object from the pool
* @return Object from the top. * @return Object from the top.
*/ */
...@@ -40,7 +40,7 @@ public class SimpleObjectPool implements ObjectPool ...@@ -40,7 +40,7 @@ public class SimpleObjectPool implements ObjectPool
return arr[--cursize]; return arr[--cursize];
} }
/** /*
* Removes the given object from the pool * Removes the given object from the pool
* @param o Object to remove * @param o Object to remove
*/ */
...@@ -57,7 +57,7 @@ public class SimpleObjectPool implements ObjectPool ...@@ -57,7 +57,7 @@ public class SimpleObjectPool implements ObjectPool
} }
} }
/** /*
* @return true if the pool is empty * @return true if the pool is empty
*/ */
public boolean isEmpty() public boolean isEmpty()
...@@ -65,7 +65,7 @@ public class SimpleObjectPool implements ObjectPool ...@@ -65,7 +65,7 @@ public class SimpleObjectPool implements ObjectPool
return cursize == 0; return cursize == 0;
} }
/** /*
* @return the number of objects in the pool * @return the number of objects in the pool
*/ */
public int size() public int size()
...@@ -73,7 +73,7 @@ public class SimpleObjectPool implements ObjectPool ...@@ -73,7 +73,7 @@ public class SimpleObjectPool implements ObjectPool
return cursize; return cursize;
} }
/** /*
* Adds all objects in one pool to this one * Adds all objects in one pool to this one
* @param pool The pool to take the objects from * @param pool The pool to take the objects from
*/ */
...@@ -96,7 +96,7 @@ public class SimpleObjectPool implements ObjectPool ...@@ -96,7 +96,7 @@ public class SimpleObjectPool implements ObjectPool
cursize = totalsize; cursize = totalsize;
} }
/** /*
* Clears the pool of all objects * Clears the pool of all objects
*/ */
public void clear() public void clear()
......
...@@ -10,7 +10,7 @@ import org.postgresql.util.*; ...@@ -10,7 +10,7 @@ import org.postgresql.util.*;
// Important: There are a lot of debug code commented out. Please do not // Important: There are a lot of debug code commented out. Please do not
// delete these. // delete these.
/** /*
* This class implements the Fastpath api. * This class implements the Fastpath api.
* *
* <p>This is a means of executing functions imbeded in the org.postgresql backend * <p>This is a means of executing functions imbeded in the org.postgresql backend
...@@ -30,7 +30,7 @@ public class Fastpath ...@@ -30,7 +30,7 @@ public class Fastpath
protected org.postgresql.Connection conn; // our connection protected org.postgresql.Connection conn; // our connection
protected org.postgresql.PG_Stream stream; // the network stream protected org.postgresql.PG_Stream stream; // the network stream
/** /*
* Initialises the fastpath system * Initialises the fastpath system
* *
* <p><b>Important Notice</b> * <p><b>Important Notice</b>
...@@ -47,7 +47,7 @@ public class Fastpath ...@@ -47,7 +47,7 @@ public class Fastpath
//DriverManager.println("Fastpath initialised"); //DriverManager.println("Fastpath initialised");
} }
/** /*
* Send a function call to the PostgreSQL backend * Send a function call to the PostgreSQL backend
* *
* @param fnid Function id * @param fnid Function id
...@@ -91,8 +91,8 @@ public class Fastpath ...@@ -91,8 +91,8 @@ public class Fastpath
// as an error. // as an error.
//int in = stream.ReceiveChar(); //int in = stream.ReceiveChar();
//DriverManager.println("ReceiveChar() = "+in+" '"+((char)in)+"'"); //DriverManager.println("ReceiveChar() = "+in+" '"+((char)in)+"'");
//if(in!='V') { //if (in!='V') {
//if(in=='E') //if (in=='E')
//throw new SQLException(stream.ReceiveString(conn.getEncoding())); //throw new SQLException(stream.ReceiveString(conn.getEncoding()));
//throw new SQLException("Fastpath: expected 'V' from backend, got "+((char)in)); //throw new SQLException("Fastpath: expected 'V' from backend, got "+((char)in));
//} //}
...@@ -156,7 +156,7 @@ public class Fastpath ...@@ -156,7 +156,7 @@ public class Fastpath
} }
} }
/** /*
* Send a function call to the PostgreSQL backend by name. * Send a function call to the PostgreSQL backend by name.
* *
* Note: the mapping for the procedure name to function id needs to exist, * Note: the mapping for the procedure name to function id needs to exist,
...@@ -182,7 +182,7 @@ public class Fastpath ...@@ -182,7 +182,7 @@ public class Fastpath
return fastpath(getID(name), resulttype, args); return fastpath(getID(name), resulttype, args);
} }
/** /*
* This convenience method assumes that the return value is an Integer * This convenience method assumes that the return value is an Integer
* @param name Function name * @param name Function name
* @param args Function arguments * @param args Function arguments
...@@ -197,7 +197,7 @@ public class Fastpath ...@@ -197,7 +197,7 @@ public class Fastpath
return i.intValue(); return i.intValue();
} }
/** /*
* This convenience method assumes that the return value is an Integer * This convenience method assumes that the return value is an Integer
* @param name Function name * @param name Function name
* @param args Function arguments * @param args Function arguments
...@@ -209,7 +209,7 @@ public class Fastpath ...@@ -209,7 +209,7 @@ public class Fastpath
return (byte[])fastpath(name, false, args); return (byte[])fastpath(name, false, args);
} }
/** /*
* This adds a function to our lookup table. * This adds a function to our lookup table.
* *
* <p>User code should use the addFunctions method, which is based upon a * <p>User code should use the addFunctions method, which is based upon a
...@@ -225,7 +225,7 @@ public class Fastpath ...@@ -225,7 +225,7 @@ public class Fastpath
func.put(name, new Integer(fnid)); func.put(name, new Integer(fnid));
} }
/** /*
* This takes a ResultSet containing two columns. Column 1 contains the * This takes a ResultSet containing two columns. Column 1 contains the
* function name, Column 2 the oid. * function name, Column 2 the oid.
* *
...@@ -265,7 +265,7 @@ public class Fastpath ...@@ -265,7 +265,7 @@ public class Fastpath
} }
} }
/** /*
* This returns the function id associated by its name * This returns the function id associated by its name
* *
* <p>If addFunction() or addFunctions() have not been called for this name, * <p>If addFunction() or addFunctions() have not been called for this name,
......
...@@ -7,7 +7,7 @@ import java.util.*; ...@@ -7,7 +7,7 @@ import java.util.*;
import java.sql.*; import java.sql.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* Each fastpath call requires an array of arguments, the number and type * Each fastpath call requires an array of arguments, the number and type
* dependent on the function being called. * dependent on the function being called.
* *
...@@ -22,22 +22,22 @@ import org.postgresql.util.*; ...@@ -22,22 +22,22 @@ import org.postgresql.util.*;
*/ */
public class FastpathArg public class FastpathArg
{ {
/** /*
* Type of argument, true=integer, false=byte[] * Type of argument, true=integer, false=byte[]
*/ */
public boolean type; public boolean type;
/** /*
* Integer value if type=true * Integer value if type=true
*/ */
public int value; public int value;
/** /*
* Byte value if type=false; * Byte value if type=false;
*/ */
public byte[] bytes; public byte[] bytes;
/** /*
* Constructs an argument that consists of an integer value * Constructs an argument that consists of an integer value
* @param value int value to set * @param value int value to set
*/ */
...@@ -47,7 +47,7 @@ public class FastpathArg ...@@ -47,7 +47,7 @@ public class FastpathArg
this.value = value; this.value = value;
} }
/** /*
* Constructs an argument that consists of an array of bytes * Constructs an argument that consists of an array of bytes
* @param bytes array to store * @param bytes array to store
*/ */
...@@ -57,7 +57,7 @@ public class FastpathArg ...@@ -57,7 +57,7 @@ public class FastpathArg
this.bytes = bytes; this.bytes = bytes;
} }
/** /*
* Constructs an argument that consists of part of a byte array * Constructs an argument that consists of part of a byte array
* @param buf source array * @param buf source array
* @param off offset within array * @param off offset within array
...@@ -70,7 +70,7 @@ public class FastpathArg ...@@ -70,7 +70,7 @@ public class FastpathArg
System.arraycopy(buf, off, bytes, 0, len); System.arraycopy(buf, off, bytes, 0, len);
} }
/** /*
* Constructs an argument that consists of a String. * Constructs an argument that consists of a String.
* @param s String to store * @param s String to store
*/ */
...@@ -79,7 +79,7 @@ public class FastpathArg ...@@ -79,7 +79,7 @@ public class FastpathArg
this(s.getBytes()); this(s.getBytes());
} }
/** /*
* This sends this argument down the network stream. * This sends this argument down the network stream.
* *
* <p>The stream sent consists of the length.int4 then the contents. * <p>The stream sent consists of the length.int4 then the contents.
......
...@@ -4,17 +4,17 @@ import java.io.*; ...@@ -4,17 +4,17 @@ import java.io.*;
import java.sql.*; import java.sql.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* This represents the box datatype within org.postgresql. * This represents the box datatype within org.postgresql.
*/ */
public class PGbox extends PGobject implements Serializable, Cloneable public class PGbox extends PGobject implements Serializable, Cloneable
{ {
/** /*
* These are the two points. * These are the two points.
*/ */
public PGpoint point[] = new PGpoint[2]; public PGpoint point[] = new PGpoint[2];
/** /*
* @param x1 first x coordinate * @param x1 first x coordinate
* @param y1 first y coordinate * @param y1 first y coordinate
* @param x2 second x coordinate * @param x2 second x coordinate
...@@ -27,7 +27,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable ...@@ -27,7 +27,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable
this.point[1] = new PGpoint(x2, y2); this.point[1] = new PGpoint(x2, y2);
} }
/** /*
* @param p1 first point * @param p1 first point
* @param p2 second point * @param p2 second point
*/ */
...@@ -38,7 +38,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable ...@@ -38,7 +38,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable
this.point[1] = p2; this.point[1] = p2;
} }
/** /*
* @param s Box definition in PostgreSQL syntax * @param s Box definition in PostgreSQL syntax
* @exception SQLException if definition is invalid * @exception SQLException if definition is invalid
*/ */
...@@ -48,7 +48,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable ...@@ -48,7 +48,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable
setValue(s); setValue(s);
} }
/** /*
* Required constructor * Required constructor
*/ */
public PGbox() public PGbox()
...@@ -56,7 +56,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable ...@@ -56,7 +56,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable
setType("box"); setType("box");
} }
/** /*
* This method sets the value of this object. It should be overidden, * This method sets the value of this object. It should be overidden,
* but still called by subclasses. * but still called by subclasses.
* *
...@@ -73,7 +73,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable ...@@ -73,7 +73,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable
point[1] = new PGpoint(t.getToken(1)); point[1] = new PGpoint(t.getToken(1));
} }
/** /*
* @param obj Object to compare with * @param obj Object to compare with
* @return true if the two boxes are identical * @return true if the two boxes are identical
*/ */
...@@ -88,7 +88,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable ...@@ -88,7 +88,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable
return false; return false;
} }
/** /*
* This must be overidden to allow the object to be cloned * This must be overidden to allow the object to be cloned
*/ */
public Object clone() public Object clone()
...@@ -96,7 +96,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable ...@@ -96,7 +96,7 @@ public class PGbox extends PGobject implements Serializable, Cloneable
return new PGbox((PGpoint)point[0].clone(), (PGpoint)point[1].clone()); return new PGbox((PGpoint)point[0].clone(), (PGpoint)point[1].clone());
} }
/** /*
* @return the PGbox in the syntax expected by org.postgresql * @return the PGbox in the syntax expected by org.postgresql
*/ */
public String getValue() public String getValue()
......
...@@ -4,23 +4,23 @@ import java.io.*; ...@@ -4,23 +4,23 @@ import java.io.*;
import java.sql.*; import java.sql.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* This represents org.postgresql's circle datatype, consisting of a point and * This represents org.postgresql's circle datatype, consisting of a point and
* a radius * a radius
*/ */
public class PGcircle extends PGobject implements Serializable, Cloneable public class PGcircle extends PGobject implements Serializable, Cloneable
{ {
/** /*
* This is the centre point * This is the centre point
*/ */
public PGpoint center; public PGpoint center;
/** /*
* This is the radius * This is the radius
*/ */
double radius; double radius;
/** /*
* @param x coordinate of centre * @param x coordinate of centre
* @param y coordinate of centre * @param y coordinate of centre
* @param r radius of circle * @param r radius of circle
...@@ -30,7 +30,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable ...@@ -30,7 +30,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable
this(new PGpoint(x, y), r); this(new PGpoint(x, y), r);
} }
/** /*
* @param c PGpoint describing the circle's centre * @param c PGpoint describing the circle's centre
* @param r radius of circle * @param r radius of circle
*/ */
...@@ -41,7 +41,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable ...@@ -41,7 +41,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable
this.radius = r; this.radius = r;
} }
/** /*
* @param s definition of the circle in PostgreSQL's syntax. * @param s definition of the circle in PostgreSQL's syntax.
* @exception SQLException on conversion failure * @exception SQLException on conversion failure
*/ */
...@@ -51,7 +51,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable ...@@ -51,7 +51,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable
setValue(s); setValue(s);
} }
/** /*
* This constructor is used by the driver. * This constructor is used by the driver.
*/ */
public PGcircle() public PGcircle()
...@@ -59,7 +59,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable ...@@ -59,7 +59,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable
setType("circle"); setType("circle");
} }
/** /*
* @param s definition of the circle in PostgreSQL's syntax. * @param s definition of the circle in PostgreSQL's syntax.
* @exception SQLException on conversion failure * @exception SQLException on conversion failure
*/ */
...@@ -80,7 +80,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable ...@@ -80,7 +80,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable
} }
} }
/** /*
* @param obj Object to compare with * @param obj Object to compare with
* @return true if the two boxes are identical * @return true if the two boxes are identical
*/ */
...@@ -94,7 +94,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable ...@@ -94,7 +94,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable
return false; return false;
} }
/** /*
* This must be overidden to allow the object to be cloned * This must be overidden to allow the object to be cloned
*/ */
public Object clone() public Object clone()
...@@ -102,7 +102,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable ...@@ -102,7 +102,7 @@ public class PGcircle extends PGobject implements Serializable, Cloneable
return new PGcircle((PGpoint)center.clone(), radius); return new PGcircle((PGpoint)center.clone(), radius);
} }
/** /*
* @return the PGcircle in the syntax expected by org.postgresql * @return the PGcircle in the syntax expected by org.postgresql
*/ */
public String getValue() public String getValue()
......
...@@ -4,7 +4,7 @@ import java.io.*; ...@@ -4,7 +4,7 @@ import java.io.*;
import java.sql.*; import java.sql.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* This implements a line consisting of two points. * This implements a line consisting of two points.
* *
* Currently line is not yet implemented in the backend, but this class * Currently line is not yet implemented in the backend, but this class
...@@ -12,12 +12,12 @@ import org.postgresql.util.*; ...@@ -12,12 +12,12 @@ import org.postgresql.util.*;
*/ */
public class PGline extends PGobject implements Serializable, Cloneable public class PGline extends PGobject implements Serializable, Cloneable
{ {
/** /*
* These are the two points. * These are the two points.
*/ */
public PGpoint point[] = new PGpoint[2]; public PGpoint point[] = new PGpoint[2];
/** /*
* @param x1 coordinate for first point * @param x1 coordinate for first point
* @param y1 coordinate for first point * @param y1 coordinate for first point
* @param x2 coordinate for second point * @param x2 coordinate for second point
...@@ -28,7 +28,7 @@ public class PGline extends PGobject implements Serializable, Cloneable ...@@ -28,7 +28,7 @@ public class PGline extends PGobject implements Serializable, Cloneable
this(new PGpoint(x1, y1), new PGpoint(x2, y2)); this(new PGpoint(x1, y1), new PGpoint(x2, y2));
} }
/** /*
* @param p1 first point * @param p1 first point
* @param p2 second point * @param p2 second point
*/ */
...@@ -39,7 +39,7 @@ public class PGline extends PGobject implements Serializable, Cloneable ...@@ -39,7 +39,7 @@ public class PGline extends PGobject implements Serializable, Cloneable
this.point[1] = p2; this.point[1] = p2;
} }
/** /*
* @param s definition of the circle in PostgreSQL's syntax. * @param s definition of the circle in PostgreSQL's syntax.
* @exception SQLException on conversion failure * @exception SQLException on conversion failure
*/ */
...@@ -49,7 +49,7 @@ public class PGline extends PGobject implements Serializable, Cloneable ...@@ -49,7 +49,7 @@ public class PGline extends PGobject implements Serializable, Cloneable
setValue(s); setValue(s);
} }
/** /*
* reuired by the driver * reuired by the driver
*/ */
public PGline() public PGline()
...@@ -57,7 +57,7 @@ public class PGline extends PGobject implements Serializable, Cloneable ...@@ -57,7 +57,7 @@ public class PGline extends PGobject implements Serializable, Cloneable
setType("line"); setType("line");
} }
/** /*
* @param s Definition of the line segment in PostgreSQL's syntax * @param s Definition of the line segment in PostgreSQL's syntax
* @exception SQLException on conversion failure * @exception SQLException on conversion failure
*/ */
...@@ -71,7 +71,7 @@ public class PGline extends PGobject implements Serializable, Cloneable ...@@ -71,7 +71,7 @@ public class PGline extends PGobject implements Serializable, Cloneable
point[1] = new PGpoint(t.getToken(1)); point[1] = new PGpoint(t.getToken(1));
} }
/** /*
* @param obj Object to compare with * @param obj Object to compare with
* @return true if the two boxes are identical * @return true if the two boxes are identical
*/ */
...@@ -86,7 +86,7 @@ public class PGline extends PGobject implements Serializable, Cloneable ...@@ -86,7 +86,7 @@ public class PGline extends PGobject implements Serializable, Cloneable
return false; return false;
} }
/** /*
* This must be overidden to allow the object to be cloned * This must be overidden to allow the object to be cloned
*/ */
public Object clone() public Object clone()
...@@ -94,7 +94,7 @@ public class PGline extends PGobject implements Serializable, Cloneable ...@@ -94,7 +94,7 @@ public class PGline extends PGobject implements Serializable, Cloneable
return new PGline((PGpoint)point[0].clone(), (PGpoint)point[1].clone()); return new PGline((PGpoint)point[0].clone(), (PGpoint)point[1].clone());
} }
/** /*
* @return the PGline in the syntax expected by org.postgresql * @return the PGline in the syntax expected by org.postgresql
*/ */
public String getValue() public String getValue()
......
...@@ -4,17 +4,17 @@ import java.io.*; ...@@ -4,17 +4,17 @@ import java.io.*;
import java.sql.*; import java.sql.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* This implements a lseg (line segment) consisting of two points * This implements a lseg (line segment) consisting of two points
*/ */
public class PGlseg extends PGobject implements Serializable, Cloneable public class PGlseg extends PGobject implements Serializable, Cloneable
{ {
/** /*
* These are the two points. * These are the two points.
*/ */
public PGpoint point[] = new PGpoint[2]; public PGpoint point[] = new PGpoint[2];
/** /*
* @param x1 coordinate for first point * @param x1 coordinate for first point
* @param y1 coordinate for first point * @param y1 coordinate for first point
* @param x2 coordinate for second point * @param x2 coordinate for second point
...@@ -25,7 +25,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable ...@@ -25,7 +25,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable
this(new PGpoint(x1, y1), new PGpoint(x2, y2)); this(new PGpoint(x1, y1), new PGpoint(x2, y2));
} }
/** /*
* @param p1 first point * @param p1 first point
* @param p2 second point * @param p2 second point
*/ */
...@@ -36,7 +36,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable ...@@ -36,7 +36,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable
this.point[1] = p2; this.point[1] = p2;
} }
/** /*
* @param s definition of the circle in PostgreSQL's syntax. * @param s definition of the circle in PostgreSQL's syntax.
* @exception SQLException on conversion failure * @exception SQLException on conversion failure
*/ */
...@@ -46,7 +46,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable ...@@ -46,7 +46,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable
setValue(s); setValue(s);
} }
/** /*
* reuired by the driver * reuired by the driver
*/ */
public PGlseg() public PGlseg()
...@@ -54,7 +54,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable ...@@ -54,7 +54,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable
setType("lseg"); setType("lseg");
} }
/** /*
* @param s Definition of the line segment in PostgreSQL's syntax * @param s Definition of the line segment in PostgreSQL's syntax
* @exception SQLException on conversion failure * @exception SQLException on conversion failure
*/ */
...@@ -68,7 +68,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable ...@@ -68,7 +68,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable
point[1] = new PGpoint(t.getToken(1)); point[1] = new PGpoint(t.getToken(1));
} }
/** /*
* @param obj Object to compare with * @param obj Object to compare with
* @return true if the two boxes are identical * @return true if the two boxes are identical
*/ */
...@@ -83,7 +83,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable ...@@ -83,7 +83,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable
return false; return false;
} }
/** /*
* This must be overidden to allow the object to be cloned * This must be overidden to allow the object to be cloned
*/ */
public Object clone() public Object clone()
...@@ -91,7 +91,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable ...@@ -91,7 +91,7 @@ public class PGlseg extends PGobject implements Serializable, Cloneable
return new PGlseg((PGpoint)point[0].clone(), (PGpoint)point[1].clone()); return new PGlseg((PGpoint)point[0].clone(), (PGpoint)point[1].clone());
} }
/** /*
* @return the PGlseg in the syntax expected by org.postgresql * @return the PGlseg in the syntax expected by org.postgresql
*/ */
public String getValue() public String getValue()
......
...@@ -4,22 +4,22 @@ import java.io.*; ...@@ -4,22 +4,22 @@ import java.io.*;
import java.sql.*; import java.sql.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* This implements a path (a multiple segmented line, which may be closed) * This implements a path (a multiple segmented line, which may be closed)
*/ */
public class PGpath extends PGobject implements Serializable, Cloneable public class PGpath extends PGobject implements Serializable, Cloneable
{ {
/** /*
* True if the path is open, false if closed * True if the path is open, false if closed
*/ */
public boolean open; public boolean open;
/** /*
* The points defining this path * The points defining this path
*/ */
public PGpoint points[]; public PGpoint points[];
/** /*
* @param points the PGpoints that define the path * @param points the PGpoints that define the path
* @param open True if the path is open, false if closed * @param open True if the path is open, false if closed
*/ */
...@@ -30,7 +30,7 @@ public class PGpath extends PGobject implements Serializable, Cloneable ...@@ -30,7 +30,7 @@ public class PGpath extends PGobject implements Serializable, Cloneable
this.open = open; this.open = open;
} }
/** /*
* Required by the driver * Required by the driver
*/ */
public PGpath() public PGpath()
...@@ -38,7 +38,7 @@ public class PGpath extends PGobject implements Serializable, Cloneable ...@@ -38,7 +38,7 @@ public class PGpath extends PGobject implements Serializable, Cloneable
setType("path"); setType("path");
} }
/** /*
* @param s definition of the circle in PostgreSQL's syntax. * @param s definition of the circle in PostgreSQL's syntax.
* @exception SQLException on conversion failure * @exception SQLException on conversion failure
*/ */
...@@ -48,7 +48,7 @@ public class PGpath extends PGobject implements Serializable, Cloneable ...@@ -48,7 +48,7 @@ public class PGpath extends PGobject implements Serializable, Cloneable
setValue(s); setValue(s);
} }
/** /*
* @param s Definition of the path in PostgreSQL's syntax * @param s Definition of the path in PostgreSQL's syntax
* @exception SQLException on conversion failure * @exception SQLException on conversion failure
*/ */
...@@ -75,7 +75,7 @@ public class PGpath extends PGobject implements Serializable, Cloneable ...@@ -75,7 +75,7 @@ public class PGpath extends PGobject implements Serializable, Cloneable
points[p] = new PGpoint(t.getToken(p)); points[p] = new PGpoint(t.getToken(p));
} }
/** /*
* @param obj Object to compare with * @param obj Object to compare with
* @return true if the two boxes are identical * @return true if the two boxes are identical
*/ */
...@@ -100,7 +100,7 @@ public class PGpath extends PGobject implements Serializable, Cloneable ...@@ -100,7 +100,7 @@ public class PGpath extends PGobject implements Serializable, Cloneable
return false; return false;
} }
/** /*
* This must be overidden to allow the object to be cloned * This must be overidden to allow the object to be cloned
*/ */
public Object clone() public Object clone()
...@@ -111,7 +111,7 @@ public class PGpath extends PGobject implements Serializable, Cloneable ...@@ -111,7 +111,7 @@ public class PGpath extends PGobject implements Serializable, Cloneable
return new PGpath(ary, open); return new PGpath(ary, open);
} }
/** /*
* This returns the polygon in the syntax expected by org.postgresql * This returns the polygon in the syntax expected by org.postgresql
*/ */
public String getValue() public String getValue()
......
...@@ -6,7 +6,7 @@ import java.sql.*; ...@@ -6,7 +6,7 @@ import java.sql.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* This implements a version of java.awt.Point, except it uses double * This implements a version of java.awt.Point, except it uses double
* to represent the coordinates. * to represent the coordinates.
* *
...@@ -14,17 +14,17 @@ import org.postgresql.util.*; ...@@ -14,17 +14,17 @@ import org.postgresql.util.*;
*/ */
public class PGpoint extends PGobject implements Serializable, Cloneable public class PGpoint extends PGobject implements Serializable, Cloneable
{ {
/** /*
* The X coordinate of the point * The X coordinate of the point
*/ */
public double x; public double x;
/** /*
* The Y coordinate of the point * The Y coordinate of the point
*/ */
public double y; public double y;
/** /*
* @param x coordinate * @param x coordinate
* @param y coordinate * @param y coordinate
*/ */
...@@ -35,7 +35,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable ...@@ -35,7 +35,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable
this.y = y; this.y = y;
} }
/** /*
* This is called mainly from the other geometric types, when a * This is called mainly from the other geometric types, when a
* point is imbeded within their definition. * point is imbeded within their definition.
* *
...@@ -47,7 +47,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable ...@@ -47,7 +47,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable
setValue(value); setValue(value);
} }
/** /*
* Required by the driver * Required by the driver
*/ */
public PGpoint() public PGpoint()
...@@ -55,7 +55,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable ...@@ -55,7 +55,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable
setType("point"); setType("point");
} }
/** /*
* @param s Definition of this point in PostgreSQL's syntax * @param s Definition of this point in PostgreSQL's syntax
* @exception SQLException on conversion failure * @exception SQLException on conversion failure
*/ */
...@@ -73,7 +73,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable ...@@ -73,7 +73,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable
} }
} }
/** /*
* @param obj Object to compare with * @param obj Object to compare with
* @return true if the two boxes are identical * @return true if the two boxes are identical
*/ */
...@@ -87,7 +87,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable ...@@ -87,7 +87,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable
return false; return false;
} }
/** /*
* This must be overidden to allow the object to be cloned * This must be overidden to allow the object to be cloned
*/ */
public Object clone() public Object clone()
...@@ -95,7 +95,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable ...@@ -95,7 +95,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable
return new PGpoint(x, y); return new PGpoint(x, y);
} }
/** /*
* @return the PGpoint in the syntax expected by org.postgresql * @return the PGpoint in the syntax expected by org.postgresql
*/ */
public String getValue() public String getValue()
...@@ -103,7 +103,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable ...@@ -103,7 +103,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable
return "(" + x + "," + y + ")"; return "(" + x + "," + y + ")";
} }
/** /*
* Translate the point with the supplied amount. * Translate the point with the supplied amount.
* @param x integer amount to add on the x axis * @param x integer amount to add on the x axis
* @param y integer amount to add on the y axis * @param y integer amount to add on the y axis
...@@ -113,7 +113,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable ...@@ -113,7 +113,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable
translate((double)x, (double)y); translate((double)x, (double)y);
} }
/** /*
* Translate the point with the supplied amount. * Translate the point with the supplied amount.
* @param x double amount to add on the x axis * @param x double amount to add on the x axis
* @param y double amount to add on the y axis * @param y double amount to add on the y axis
...@@ -124,7 +124,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable ...@@ -124,7 +124,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable
this.y += y; this.y += y;
} }
/** /*
* Moves the point to the supplied coordinates. * Moves the point to the supplied coordinates.
* @param x integer coordinate * @param x integer coordinate
* @param y integer coordinate * @param y integer coordinate
...@@ -134,7 +134,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable ...@@ -134,7 +134,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable
setLocation(x, y); setLocation(x, y);
} }
/** /*
* Moves the point to the supplied coordinates. * Moves the point to the supplied coordinates.
* @param x double coordinate * @param x double coordinate
* @param y double coordinate * @param y double coordinate
...@@ -145,7 +145,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable ...@@ -145,7 +145,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable
this.y = y; this.y = y;
} }
/** /*
* Moves the point to the supplied coordinates. * Moves the point to the supplied coordinates.
* refer to java.awt.Point for description of this * refer to java.awt.Point for description of this
* @param x integer coordinate * @param x integer coordinate
...@@ -157,7 +157,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable ...@@ -157,7 +157,7 @@ public class PGpoint extends PGobject implements Serializable, Cloneable
move((double)x, (double)y); move((double)x, (double)y);
} }
/** /*
* Moves the point to the supplied java.awt.Point * Moves the point to the supplied java.awt.Point
* refer to java.awt.Point for description of this * refer to java.awt.Point for description of this
* @param p Point to move to * @param p Point to move to
......
...@@ -4,17 +4,17 @@ import java.io.*; ...@@ -4,17 +4,17 @@ import java.io.*;
import java.sql.*; import java.sql.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* This implements the polygon datatype within PostgreSQL. * This implements the polygon datatype within PostgreSQL.
*/ */
public class PGpolygon extends PGobject implements Serializable, Cloneable public class PGpolygon extends PGobject implements Serializable, Cloneable
{ {
/** /*
* The points defining the polygon * The points defining the polygon
*/ */
public PGpoint points[]; public PGpoint points[];
/** /*
* Creates a polygon using an array of PGpoints * Creates a polygon using an array of PGpoints
* *
* @param points the points defining the polygon * @param points the points defining the polygon
...@@ -25,7 +25,7 @@ public class PGpolygon extends PGobject implements Serializable, Cloneable ...@@ -25,7 +25,7 @@ public class PGpolygon extends PGobject implements Serializable, Cloneable
this.points = points; this.points = points;
} }
/** /*
* @param s definition of the circle in PostgreSQL's syntax. * @param s definition of the circle in PostgreSQL's syntax.
* @exception SQLException on conversion failure * @exception SQLException on conversion failure
*/ */
...@@ -35,7 +35,7 @@ public class PGpolygon extends PGobject implements Serializable, Cloneable ...@@ -35,7 +35,7 @@ public class PGpolygon extends PGobject implements Serializable, Cloneable
setValue(s); setValue(s);
} }
/** /*
* Required by the driver * Required by the driver
*/ */
public PGpolygon() public PGpolygon()
...@@ -43,7 +43,7 @@ public class PGpolygon extends PGobject implements Serializable, Cloneable ...@@ -43,7 +43,7 @@ public class PGpolygon extends PGobject implements Serializable, Cloneable
setType("polygon"); setType("polygon");
} }
/** /*
* @param s Definition of the polygon in PostgreSQL's syntax * @param s Definition of the polygon in PostgreSQL's syntax
* @exception SQLException on conversion failure * @exception SQLException on conversion failure
*/ */
...@@ -56,7 +56,7 @@ public class PGpolygon extends PGobject implements Serializable, Cloneable ...@@ -56,7 +56,7 @@ public class PGpolygon extends PGobject implements Serializable, Cloneable
points[p] = new PGpoint(t.getToken(p)); points[p] = new PGpoint(t.getToken(p));
} }
/** /*
* @param obj Object to compare with * @param obj Object to compare with
* @return true if the two boxes are identical * @return true if the two boxes are identical
*/ */
...@@ -78,7 +78,7 @@ public class PGpolygon extends PGobject implements Serializable, Cloneable ...@@ -78,7 +78,7 @@ public class PGpolygon extends PGobject implements Serializable, Cloneable
return false; return false;
} }
/** /*
* This must be overidden to allow the object to be cloned * This must be overidden to allow the object to be cloned
*/ */
public Object clone() public Object clone()
...@@ -89,7 +89,7 @@ public class PGpolygon extends PGobject implements Serializable, Cloneable ...@@ -89,7 +89,7 @@ public class PGpolygon extends PGobject implements Serializable, Cloneable
return new PGpolygon(ary); return new PGpolygon(ary);
} }
/** /*
* @return the PGpolygon in the syntax expected by org.postgresql * @return the PGpolygon in the syntax expected by org.postgresql
*/ */
public String getValue() public String getValue()
......
...@@ -8,7 +8,7 @@ package org.postgresql.jdbc1; ...@@ -8,7 +8,7 @@ package org.postgresql.jdbc1;
import java.sql.*; import java.sql.*;
import java.math.*; import java.math.*;
/** /*
* CallableStatement is used to execute SQL stored procedures. * CallableStatement is used to execute SQL stored procedures.
* *
* <p>JDBC provides a stored procedure SQL escape that allows stored * <p>JDBC provides a stored procedure SQL escape that allows stored
...@@ -41,7 +41,7 @@ import java.math.*; ...@@ -41,7 +41,7 @@ import java.math.*;
public class CallableStatement extends PreparedStatement implements java.sql.CallableStatement public class CallableStatement extends PreparedStatement implements java.sql.CallableStatement
{ {
/** /*
* @exception SQLException on failure * @exception SQLException on failure
*/ */
CallableStatement(Connection c, String q) throws SQLException CallableStatement(Connection c, String q) throws SQLException
...@@ -49,7 +49,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -49,7 +49,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
super(c, q); super(c, q);
} }
/** /*
* Before executing a stored procedure call you must explicitly * Before executing a stored procedure call you must explicitly
* call registerOutParameter to register the java.sql.Type of each * call registerOutParameter to register the java.sql.Type of each
* out parameter. * out parameter.
...@@ -67,7 +67,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -67,7 +67,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
public void registerOutParameter(int parameterIndex, int sqlType) throws SQLException public void registerOutParameter(int parameterIndex, int sqlType) throws SQLException
{} {}
/** /*
* You must also specify the scale for numeric/decimal types: * You must also specify the scale for numeric/decimal types:
* *
* <p>Note: When reading the value of an out parameter, you must use * <p>Note: When reading the value of an out parameter, you must use
...@@ -89,7 +89,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -89,7 +89,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
//return true; //return true;
//} //}
/** /*
* An OUT parameter may have the value of SQL NULL; wasNull * An OUT parameter may have the value of SQL NULL; wasNull
* reports whether the last value read has this special value. * reports whether the last value read has this special value.
* *
...@@ -109,7 +109,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -109,7 +109,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
//return null; //return null;
//} //}
/** /*
* Get the value of a CHAR, VARCHAR, or LONGVARCHAR parameter as a * Get the value of a CHAR, VARCHAR, or LONGVARCHAR parameter as a
* Java String. * Java String.
* *
...@@ -129,7 +129,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -129,7 +129,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
//return null; //return null;
//} //}
/** /*
* Get the value of a BIT parameter as a Java boolean. * Get the value of a BIT parameter as a Java boolean.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -141,7 +141,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -141,7 +141,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
return false; return false;
} }
/** /*
* Get the value of a TINYINT parameter as a Java byte. * Get the value of a TINYINT parameter as a Java byte.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -153,7 +153,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -153,7 +153,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
return 0; return 0;
} }
/** /*
* Get the value of a SMALLINT parameter as a Java short. * Get the value of a SMALLINT parameter as a Java short.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -165,7 +165,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -165,7 +165,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
return 0; return 0;
} }
/** /*
* Get the value of an INTEGER parameter as a Java int. * Get the value of an INTEGER parameter as a Java int.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -177,7 +177,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -177,7 +177,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
return 0; return 0;
} }
/** /*
* Get the value of a BIGINT parameter as a Java long. * Get the value of a BIGINT parameter as a Java long.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -189,7 +189,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -189,7 +189,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
return 0; return 0;
} }
/** /*
* Get the value of a FLOAT parameter as a Java float. * Get the value of a FLOAT parameter as a Java float.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -201,7 +201,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -201,7 +201,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
return (float) 0.0; return (float) 0.0;
} }
/** /*
* Get the value of a DOUBLE parameter as a Java double. * Get the value of a DOUBLE parameter as a Java double.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -213,7 +213,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -213,7 +213,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
return 0.0; return 0.0;
} }
/** /*
* Get the value of a NUMERIC parameter as a java.math.BigDecimal * Get the value of a NUMERIC parameter as a java.math.BigDecimal
* object. * object.
* *
...@@ -229,7 +229,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -229,7 +229,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
return null; return null;
} }
/** /*
* Get the value of a SQL BINARY or VARBINARY parameter as a Java * Get the value of a SQL BINARY or VARBINARY parameter as a Java
* byte[] * byte[]
* *
...@@ -247,7 +247,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -247,7 +247,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
//return null; //return null;
//} //}
/** /*
* Get the value of a SQL DATE parameter as a java.sql.Date object * Get the value of a SQL DATE parameter as a java.sql.Date object
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -259,7 +259,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -259,7 +259,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
return null; return null;
} }
/** /*
* Get the value of a SQL TIME parameter as a java.sql.Time object. * Get the value of a SQL TIME parameter as a java.sql.Time object.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -271,7 +271,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -271,7 +271,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
return null; return null;
} }
/** /*
* Get the value of a SQL TIMESTAMP parameter as a java.sql.Timestamp object. * Get the value of a SQL TIMESTAMP parameter as a java.sql.Timestamp object.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -295,7 +295,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal ...@@ -295,7 +295,7 @@ public class CallableStatement extends PreparedStatement implements java.sql.Cal
// getObject returns a Java object for the parameter. // getObject returns a Java object for the parameter.
// See the JDBC spec's "Dynamic Programming" chapter for details. // See the JDBC spec's "Dynamic Programming" chapter for details.
/** /*
* Get the value of a parameter as a Java object. * Get the value of a parameter as a Java object.
* *
* <p>This method returns a Java object whose type coresponds to the * <p>This method returns a Java object whose type coresponds to the
......
...@@ -16,8 +16,8 @@ import org.postgresql.fastpath.*; ...@@ -16,8 +16,8 @@ import org.postgresql.fastpath.*;
import org.postgresql.largeobject.*; import org.postgresql.largeobject.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* $Id: Connection.java,v 1.12 2001/10/25 05:59:59 momjian Exp $ * $Id: Connection.java,v 1.13 2001/11/19 22:33:38 momjian Exp $
* *
* A Connection represents a session with a specific database. Within the * A Connection represents a session with a specific database. Within the
* context of a Connection, SQL statements are executed and results are * context of a Connection, SQL statements are executed and results are
...@@ -39,7 +39,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -39,7 +39,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
// This is a cache of the DatabaseMetaData instance for this connection // This is a cache of the DatabaseMetaData instance for this connection
protected DatabaseMetaData metadata; protected DatabaseMetaData metadata;
/** /*
* SQL statements without parameters are normally executed using * SQL statements without parameters are normally executed using
* Statement objects. If the same SQL statement is executed many * Statement objects. If the same SQL statement is executed many
* times, it is more efficient to use a PreparedStatement * times, it is more efficient to use a PreparedStatement
...@@ -52,7 +52,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -52,7 +52,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
return new Statement(this); return new Statement(this);
} }
/** /*
* A SQL statement with or without IN parameters can be pre-compiled * A SQL statement with or without IN parameters can be pre-compiled
* and stored in a PreparedStatement object. This object can then * and stored in a PreparedStatement object. This object can then
* be used to efficiently execute this statement multiple times. * be used to efficiently execute this statement multiple times.
...@@ -75,7 +75,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -75,7 +75,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
return new PreparedStatement(this, sql); return new PreparedStatement(this, sql);
} }
/** /*
* A SQL stored procedure call statement is handled by creating a * A SQL stored procedure call statement is handled by creating a
* CallableStatement for it. The CallableStatement provides methods * CallableStatement for it. The CallableStatement provides methods
* for setting up its IN and OUT parameters and methods for executing * for setting up its IN and OUT parameters and methods for executing
...@@ -100,7 +100,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -100,7 +100,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
// return new CallableStatement(this, sql); // return new CallableStatement(this, sql);
} }
/** /*
* Tests to see if a Connection is closed * Tests to see if a Connection is closed
* *
* @return the status of the connection * @return the status of the connection
...@@ -111,7 +111,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -111,7 +111,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
return (pg_stream == null); return (pg_stream == null);
} }
/** /*
* A connection's database is able to provide information describing * A connection's database is able to provide information describing
* its tables, its supported SQL grammar, its stored procedures, the * its tables, its supported SQL grammar, its stored procedures, the
* capabilities of this connection, etc. This information is made * capabilities of this connection, etc. This information is made
...@@ -127,7 +127,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -127,7 +127,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
return metadata; return metadata;
} }
/** /*
* This overides the method in org.postgresql.Connection and returns a * This overides the method in org.postgresql.Connection and returns a
* ResultSet. * ResultSet.
*/ */
...@@ -157,7 +157,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -157,7 +157,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
return sqlType; return sqlType;
} }
/** /*
* This table holds the org.postgresql names for the types supported. * 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. * Any types that map to Types.OTHER (eg POINT) don't go into this table.
* They default automatically to Types.OTHER * They default automatically to Types.OTHER
...@@ -183,7 +183,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -183,7 +183,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
"abstime", "timestamp" "abstime", "timestamp"
}; };
/** /*
* This table holds the JDBC type for each entry above. * This table holds the JDBC type for each entry above.
* *
* Note: This must be in the same order as above * Note: This must be in the same order as above
......
...@@ -10,10 +10,10 @@ import java.util.*; ...@@ -10,10 +10,10 @@ import java.util.*;
import org.postgresql.Field; import org.postgresql.Field;
import org.postgresql.util.PSQLException; import org.postgresql.util.PSQLException;
/** /*
* This class provides information about the database as a whole. * This class provides information about the database as a whole.
* *
* $Id: DatabaseMetaData.java,v 1.38 2001/11/09 02:57:25 davec Exp $ * $Id: DatabaseMetaData.java,v 1.39 2001/11/19 22:33:38 momjian Exp $
* *
* <p>Many of the methods here return lists of information in ResultSets. You * <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 * can use the normal ResultSet methods such as getString and getInt to
...@@ -51,7 +51,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -51,7 +51,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
this.connection = conn; this.connection = conn;
} }
/** /*
* Can all the procedures returned by getProcedures be called * Can all the procedures returned by getProcedures be called
* by the current user? * by the current user?
* *
...@@ -63,7 +63,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -63,7 +63,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; // For now... return true; // For now...
} }
/** /*
* Can all the tables returned by getTable be SELECTed by * Can all the tables returned by getTable be SELECTed by
* the current user? * the current user?
* *
...@@ -75,7 +75,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -75,7 +75,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; // For now... return true; // For now...
} }
/** /*
* What is the URL for this database? * What is the URL for this database?
* *
* @return the url or null if it cannott be generated * @return the url or null if it cannott be generated
...@@ -86,7 +86,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -86,7 +86,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.getURL(); return connection.getURL();
} }
/** /*
* What is our user name as known to the database? * What is our user name as known to the database?
* *
* @return our database user name * @return our database user name
...@@ -97,7 +97,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -97,7 +97,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.getUserName(); return connection.getUserName();
} }
/** /*
* Is the database in read-only mode? * Is the database in read-only mode?
* *
* @return true if so * @return true if so
...@@ -108,7 +108,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -108,7 +108,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.isReadOnly(); return connection.isReadOnly();
} }
/** /*
* Are NULL values sorted high? * Are NULL values sorted high?
* *
* @return true if so * @return true if so
...@@ -119,7 +119,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -119,7 +119,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.haveMinimumServerVersion("7.2"); return connection.haveMinimumServerVersion("7.2");
} }
/** /*
* Are NULL values sorted low? * Are NULL values sorted low?
* *
* @return true if so * @return true if so
...@@ -130,7 +130,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -130,7 +130,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Are NULL values sorted at the start regardless of sort order? * Are NULL values sorted at the start regardless of sort order?
* *
* @return true if so * @return true if so
...@@ -141,7 +141,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -141,7 +141,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Are NULL values sorted at the end regardless of sort order? * Are NULL values sorted at the end regardless of sort order?
* *
* @return true if so * @return true if so
...@@ -152,7 +152,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -152,7 +152,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return ! connection.haveMinimumServerVersion("7.2"); return ! connection.haveMinimumServerVersion("7.2");
} }
/** /*
* What is the name of this database product - we hope that it is * What is the name of this database product - we hope that it is
* PostgreSQL, so we return that explicitly. * PostgreSQL, so we return that explicitly.
* *
...@@ -164,7 +164,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -164,7 +164,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return "PostgreSQL"; return "PostgreSQL";
} }
/** /*
* What is the version of this database product. * What is the version of this database product.
* *
* @return the database version * @return the database version
...@@ -175,7 +175,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -175,7 +175,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.getDBVersionNumber(); return connection.getDBVersionNumber();
} }
/** /*
* What is the name of this JDBC driver? If we don't know this * What is the name of this JDBC driver? If we don't know this
* we are doing something wrong! * we are doing something wrong!
* *
...@@ -187,7 +187,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -187,7 +187,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return "PostgreSQL Native Driver"; return "PostgreSQL Native Driver";
} }
/** /*
* What is the version string of this JDBC driver? Again, this is * What is the version string of this JDBC driver? Again, this is
* static. * static.
* *
...@@ -199,7 +199,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -199,7 +199,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.this_driver.getVersion(); return connection.this_driver.getVersion();
} }
/** /*
* What is this JDBC driver's major version number? * What is this JDBC driver's major version number?
* *
* @return the JDBC driver major version * @return the JDBC driver major version
...@@ -209,7 +209,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -209,7 +209,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.this_driver.getMajorVersion(); return connection.this_driver.getMajorVersion();
} }
/** /*
* What is this JDBC driver's minor version number? * What is this JDBC driver's minor version number?
* *
* @return the JDBC driver minor version * @return the JDBC driver minor version
...@@ -219,7 +219,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -219,7 +219,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.this_driver.getMinorVersion(); return connection.this_driver.getMinorVersion();
} }
/** /*
* Does the database store tables in a local file? No - it * Does the database store tables in a local file? No - it
* stores them in a file on the server. * stores them in a file on the server.
* *
...@@ -231,7 +231,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -231,7 +231,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Does the database use a file for each table? Well, not really, * Does the database use a file for each table? Well, not really,
* since it doesnt use local files. * since it doesnt use local files.
* *
...@@ -243,7 +243,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -243,7 +243,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Does the database treat mixed case unquoted SQL identifiers * Does the database treat mixed case unquoted SQL identifiers
* as case sensitive and as a result store them in mixed case? * as case sensitive and as a result store them in mixed case?
* A JDBC-Compliant driver will always return false. * A JDBC-Compliant driver will always return false.
...@@ -260,7 +260,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -260,7 +260,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Does the database treat mixed case unquoted SQL identifiers as * Does the database treat mixed case unquoted SQL identifiers as
* case insensitive and store them in upper case? * case insensitive and store them in upper case?
* *
...@@ -271,7 +271,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -271,7 +271,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Does the database treat mixed case unquoted SQL identifiers as * Does the database treat mixed case unquoted SQL identifiers as
* case insensitive and store them in lower case? * case insensitive and store them in lower case?
* *
...@@ -282,7 +282,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -282,7 +282,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Does the database treat mixed case unquoted SQL identifiers as * Does the database treat mixed case unquoted SQL identifiers as
* case insensitive and store them in mixed case? * case insensitive and store them in mixed case?
* *
...@@ -293,7 +293,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -293,7 +293,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Does the database treat mixed case quoted SQL identifiers as * Does the database treat mixed case quoted SQL identifiers as
* case sensitive and as a result store them in mixed case? A * case sensitive and as a result store them in mixed case? A
* JDBC compliant driver will always return true. * JDBC compliant driver will always return true.
...@@ -306,7 +306,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -306,7 +306,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Does the database treat mixed case quoted SQL identifiers as * Does the database treat mixed case quoted SQL identifiers as
* case insensitive and store them in upper case? * case insensitive and store them in upper case?
* *
...@@ -317,7 +317,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -317,7 +317,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Does the database treat mixed case quoted SQL identifiers as case * Does the database treat mixed case quoted SQL identifiers as case
* insensitive and store them in lower case? * insensitive and store them in lower case?
* *
...@@ -328,7 +328,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -328,7 +328,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Does the database treat mixed case quoted SQL identifiers as case * Does the database treat mixed case quoted SQL identifiers as case
* insensitive and store them in mixed case? * insensitive and store them in mixed case?
* *
...@@ -339,7 +339,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -339,7 +339,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* What is the string used to quote SQL identifiers? This returns * What is the string used to quote SQL identifiers? This returns
* a space if identifier quoting isn't supported. A JDBC Compliant * a space if identifier quoting isn't supported. A JDBC Compliant
* driver will always use a double quote character. * driver will always use a double quote character.
...@@ -352,7 +352,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -352,7 +352,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return "\""; return "\"";
} }
/** /*
* Get a comma separated list of all a database's SQL keywords that * Get a comma separated list of all a database's SQL keywords that
* are NOT also SQL92 keywords. * are NOT also SQL92 keywords.
* *
...@@ -397,7 +397,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -397,7 +397,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return ""; return "";
} }
/** /*
* This is the string that can be used to escape '_' and '%' in * This is the string that can be used to escape '_' and '%' in
* a search string pattern style catalog search parameters * a search string pattern style catalog search parameters
* *
...@@ -409,7 +409,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -409,7 +409,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return "\\"; return "\\";
} }
/** /*
* Get all the "extra" characters that can be used in unquoted * Get all the "extra" characters that can be used in unquoted
* identifier names (those beyond a-zA-Z0-9 and _) * identifier names (those beyond a-zA-Z0-9 and _)
* *
...@@ -425,7 +425,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -425,7 +425,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return ""; return "";
} }
/** /*
* Is "ALTER TABLE" with an add column supported? * Is "ALTER TABLE" with an add column supported?
* Yes for PostgreSQL 6.1 * Yes for PostgreSQL 6.1
* *
...@@ -437,7 +437,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -437,7 +437,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Is "ALTER TABLE" with a drop column supported? * Is "ALTER TABLE" with a drop column supported?
* Peter 10/10/2000 This was set to true, but 7.1devel doesn't support it! * Peter 10/10/2000 This was set to true, but 7.1devel doesn't support it!
* *
...@@ -449,7 +449,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -449,7 +449,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Is column aliasing supported? * Is column aliasing supported?
* *
* <p>If so, the SQL AS clause can be used to provide names for * <p>If so, the SQL AS clause can be used to provide names for
...@@ -472,7 +472,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -472,7 +472,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Are concatenations between NULL and non-NULL values NULL? A * Are concatenations between NULL and non-NULL values NULL? A
* JDBC Compliant driver always returns true * JDBC Compliant driver always returns true
* *
...@@ -496,7 +496,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -496,7 +496,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Are table correlation names supported? A JDBC Compliant * Are table correlation names supported? A JDBC Compliant
* driver always returns true. * driver always returns true.
* *
...@@ -508,7 +508,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -508,7 +508,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* If table correlation names are supported, are they restricted to * If table correlation names are supported, are they restricted to
* be different from the names of the tables? * be different from the names of the tables?
* *
...@@ -520,7 +520,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -520,7 +520,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Are expressions in "ORDER BY" lists supported? * Are expressions in "ORDER BY" lists supported?
* *
* <br>e.g. select * from t order by a + b; * <br>e.g. select * from t order by a + b;
...@@ -533,7 +533,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -533,7 +533,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Can an "ORDER BY" clause use columns not in the SELECT? * Can an "ORDER BY" clause use columns not in the SELECT?
* *
* @return true if so * @return true if so
...@@ -544,7 +544,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -544,7 +544,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.haveMinimumServerVersion("6.4"); return connection.haveMinimumServerVersion("6.4");
} }
/** /*
* Is some form of "GROUP BY" clause supported? * Is some form of "GROUP BY" clause supported?
* I checked it, and yes it is. * I checked it, and yes it is.
* *
...@@ -556,7 +556,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -556,7 +556,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Can a "GROUP BY" clause use columns not in the SELECT? * Can a "GROUP BY" clause use columns not in the SELECT?
* *
* @return true if so * @return true if so
...@@ -567,7 +567,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -567,7 +567,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.haveMinimumServerVersion("6.4"); return connection.haveMinimumServerVersion("6.4");
} }
/** /*
* Can a "GROUP BY" clause add columns not in the SELECT provided * Can a "GROUP BY" clause add columns not in the SELECT provided
* it specifies all the columns in the SELECT? Does anyone actually * it specifies all the columns in the SELECT? Does anyone actually
* understand what they mean here? * understand what they mean here?
...@@ -582,7 +582,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -582,7 +582,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return supportsGroupByUnrelated(); return supportsGroupByUnrelated();
} }
/** /*
* Is the escape character in "LIKE" clauses supported? A * Is the escape character in "LIKE" clauses supported? A
* JDBC compliant driver always returns true. * JDBC compliant driver always returns true.
* *
...@@ -594,7 +594,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -594,7 +594,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.haveMinimumServerVersion("7.1"); return connection.haveMinimumServerVersion("7.1");
} }
/** /*
* Are multiple ResultSets from a single execute supported? * Are multiple ResultSets from a single execute supported?
* Well, I implemented it, but I dont think this is possible from * Well, I implemented it, but I dont think this is possible from
* the back ends point of view. * the back ends point of view.
...@@ -607,7 +607,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -607,7 +607,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Can we have multiple transactions open at once (on different * Can we have multiple transactions open at once (on different
* connections?) * connections?)
* I guess we can have, since Im relying on it. * I guess we can have, since Im relying on it.
...@@ -620,7 +620,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -620,7 +620,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Can columns be defined as non-nullable. A JDBC Compliant driver * Can columns be defined as non-nullable. A JDBC Compliant driver
* always returns true. * always returns true.
* *
...@@ -635,7 +635,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -635,7 +635,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Does this driver support the minimum ODBC SQL grammar. This * Does this driver support the minimum ODBC SQL grammar. This
* grammar is defined at: * grammar is defined at:
* *
...@@ -652,7 +652,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -652,7 +652,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Does this driver support the Core ODBC SQL grammar. We need * Does this driver support the Core ODBC SQL grammar. We need
* SQL-92 conformance for this. * SQL-92 conformance for this.
* *
...@@ -664,7 +664,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -664,7 +664,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Does this driver support the Extended (Level 2) ODBC SQL * Does this driver support the Extended (Level 2) ODBC SQL
* grammar. We don't conform to the Core (Level 1), so we can't * grammar. We don't conform to the Core (Level 1), so we can't
* conform to the Extended SQL Grammar. * conform to the Extended SQL Grammar.
...@@ -677,7 +677,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -677,7 +677,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Does this driver support the ANSI-92 entry level SQL grammar? * Does this driver support the ANSI-92 entry level SQL grammar?
* All JDBC Compliant drivers must return true. We currently * All JDBC Compliant drivers must return true. We currently
* report false until 'schema' support is added. Then this * report false until 'schema' support is added. Then this
...@@ -694,7 +694,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -694,7 +694,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Does this driver support the ANSI-92 intermediate level SQL * Does this driver support the ANSI-92 intermediate level SQL
* grammar? * grammar?
* *
...@@ -706,7 +706,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -706,7 +706,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Does this driver support the ANSI-92 full SQL grammar? * Does this driver support the ANSI-92 full SQL grammar?
* *
* @return true if so * @return true if so
...@@ -717,7 +717,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -717,7 +717,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Is the SQL Integrity Enhancement Facility supported? * Is the SQL Integrity Enhancement Facility supported?
* I haven't seen this mentioned anywhere, so I guess not * I haven't seen this mentioned anywhere, so I guess not
* *
...@@ -729,7 +729,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -729,7 +729,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Is some form of outer join supported? * Is some form of outer join supported?
* *
* @return true if so * @return true if so
...@@ -740,7 +740,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -740,7 +740,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.haveMinimumServerVersion("7.1"); return connection.haveMinimumServerVersion("7.1");
} }
/** /*
* Are full nexted outer joins supported? * Are full nexted outer joins supported?
* *
* @return true if so * @return true if so
...@@ -751,7 +751,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -751,7 +751,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.haveMinimumServerVersion("7.1"); return connection.haveMinimumServerVersion("7.1");
} }
/** /*
* Is there limited support for outer joins? * Is there limited support for outer joins?
* *
* @return true if so * @return true if so
...@@ -762,7 +762,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -762,7 +762,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return supportsFullOuterJoins(); return supportsFullOuterJoins();
} }
/** /*
* What is the database vendor's preferred term for "schema"? * What is the database vendor's preferred term for "schema"?
* PostgreSQL doesn't have schemas, but when it does, we'll use the * PostgreSQL doesn't have schemas, but when it does, we'll use the
* term "schema". * term "schema".
...@@ -775,7 +775,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -775,7 +775,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return "schema"; return "schema";
} }
/** /*
* What is the database vendor's preferred term for "procedure"? * What is the database vendor's preferred term for "procedure"?
* Traditionally, "function" has been used. * Traditionally, "function" has been used.
* *
...@@ -787,7 +787,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -787,7 +787,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return "function"; return "function";
} }
/** /*
* What is the database vendor's preferred term for "catalog"? * What is the database vendor's preferred term for "catalog"?
* *
* @return the vendor term * @return the vendor term
...@@ -798,7 +798,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -798,7 +798,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return "database"; return "database";
} }
/** /*
* Does a catalog appear at the start of a qualified table name? * Does a catalog appear at the start of a qualified table name?
* (Otherwise it appears at the end). * (Otherwise it appears at the end).
* *
...@@ -810,7 +810,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -810,7 +810,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
throw org.postgresql.Driver.notImplemented(); throw org.postgresql.Driver.notImplemented();
} }
/** /*
* What is the Catalog separator. * What is the Catalog separator.
* *
* @return the catalog separator string * @return the catalog separator string
...@@ -821,7 +821,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -821,7 +821,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
throw org.postgresql.Driver.notImplemented(); throw org.postgresql.Driver.notImplemented();
} }
/** /*
* Can a schema name be used in a data manipulation statement? Nope. * Can a schema name be used in a data manipulation statement? Nope.
* *
* @return true if so * @return true if so
...@@ -832,7 +832,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -832,7 +832,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Can a schema name be used in a procedure call statement? Nope. * Can a schema name be used in a procedure call statement? Nope.
* *
* @return true if so * @return true if so
...@@ -843,7 +843,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -843,7 +843,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Can a schema be used in a table definition statement? Nope. * Can a schema be used in a table definition statement? Nope.
* *
* @return true if so * @return true if so
...@@ -854,7 +854,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -854,7 +854,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Can a schema name be used in an index definition statement? * Can a schema name be used in an index definition statement?
* *
* @return true if so * @return true if so
...@@ -865,7 +865,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -865,7 +865,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Can a schema name be used in a privilege definition statement? * Can a schema name be used in a privilege definition statement?
* *
* @return true if so * @return true if so
...@@ -876,7 +876,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -876,7 +876,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Can a catalog name be used in a data manipulation statement? * Can a catalog name be used in a data manipulation statement?
* *
* @return true if so * @return true if so
...@@ -887,7 +887,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -887,7 +887,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Can a catalog name be used in a procedure call statement? * Can a catalog name be used in a procedure call statement?
* *
* @return true if so * @return true if so
...@@ -898,7 +898,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -898,7 +898,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Can a catalog name be used in a table definition statement? * Can a catalog name be used in a table definition statement?
* *
* @return true if so * @return true if so
...@@ -909,7 +909,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -909,7 +909,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Can a catalog name be used in an index definition? * Can a catalog name be used in an index definition?
* *
* @return true if so * @return true if so
...@@ -920,7 +920,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -920,7 +920,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Can a catalog name be used in a privilege definition statement? * Can a catalog name be used in a privilege definition statement?
* *
* @return true if so * @return true if so
...@@ -931,7 +931,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -931,7 +931,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* We support cursors for gets only it seems. I dont see a method * We support cursors for gets only it seems. I dont see a method
* to get a positioned delete. * to get a positioned delete.
* *
...@@ -943,7 +943,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -943,7 +943,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; // For now... return false; // For now...
} }
/** /*
* Is positioned UPDATE supported? * Is positioned UPDATE supported?
* *
* @return true if so * @return true if so
...@@ -954,7 +954,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -954,7 +954,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; // For now... return false; // For now...
} }
/** /*
* Is SELECT for UPDATE supported? * Is SELECT for UPDATE supported?
* *
* @return true if so; false otherwise * @return true if so; false otherwise
...@@ -965,7 +965,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -965,7 +965,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.haveMinimumServerVersion("6.5"); return connection.haveMinimumServerVersion("6.5");
} }
/** /*
* Are stored procedure calls using the stored procedure escape * Are stored procedure calls using the stored procedure escape
* syntax supported? * syntax supported?
* *
...@@ -977,7 +977,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -977,7 +977,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Are subqueries in comparison expressions supported? A JDBC * Are subqueries in comparison expressions supported? A JDBC
* Compliant driver always returns true. * Compliant driver always returns true.
* *
...@@ -989,7 +989,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -989,7 +989,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Are subqueries in 'exists' expressions supported? A JDBC * Are subqueries in 'exists' expressions supported? A JDBC
* Compliant driver always returns true. * Compliant driver always returns true.
* *
...@@ -1001,7 +1001,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1001,7 +1001,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Are subqueries in 'in' statements supported? A JDBC * Are subqueries in 'in' statements supported? A JDBC
* Compliant driver always returns true. * Compliant driver always returns true.
* *
...@@ -1013,7 +1013,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1013,7 +1013,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Are subqueries in quantified expressions supported? A JDBC * Are subqueries in quantified expressions supported? A JDBC
* Compliant driver always returns true. * Compliant driver always returns true.
* *
...@@ -1028,7 +1028,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1028,7 +1028,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Are correlated subqueries supported? A JDBC Compliant driver * Are correlated subqueries supported? A JDBC Compliant driver
* always returns true. * always returns true.
* *
...@@ -1042,7 +1042,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1042,7 +1042,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.haveMinimumServerVersion("7.1"); return connection.haveMinimumServerVersion("7.1");
} }
/** /*
* Is SQL UNION supported? * Is SQL UNION supported?
* *
* @return true if so * @return true if so
...@@ -1053,7 +1053,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1053,7 +1053,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; // since 6.3 return true; // since 6.3
} }
/** /*
* Is SQL UNION ALL supported? * Is SQL UNION ALL supported?
* *
* @return true if so * @return true if so
...@@ -1064,7 +1064,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1064,7 +1064,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.haveMinimumServerVersion("7.1"); return connection.haveMinimumServerVersion("7.1");
} }
/** /*
* In PostgreSQL, Cursors are only open within transactions. * In PostgreSQL, Cursors are only open within transactions.
* *
* @return true if so * @return true if so
...@@ -1075,7 +1075,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1075,7 +1075,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Do we support open cursors across multiple transactions? * Do we support open cursors across multiple transactions?
* *
* @return true if so * @return true if so
...@@ -1086,7 +1086,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1086,7 +1086,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Can statements remain open across commits? They may, but * Can statements remain open across commits? They may, but
* this driver cannot guarentee that. In further reflection. * this driver cannot guarentee that. In further reflection.
* we are talking a Statement object here, so the answer is * we are talking a Statement object here, so the answer is
...@@ -1100,7 +1100,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1100,7 +1100,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Can statements remain open across rollbacks? They may, but * Can statements remain open across rollbacks? They may, but
* this driver cannot guarentee that. In further contemplation, * this driver cannot guarentee that. In further contemplation,
* we are talking a Statement object here, so the answer is yes, * we are talking a Statement object here, so the answer is yes,
...@@ -1114,7 +1114,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1114,7 +1114,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* How many hex characters can you have in an inline binary literal * How many hex characters can you have in an inline binary literal
* *
* @return the max literal length * @return the max literal length
...@@ -1125,7 +1125,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1125,7 +1125,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; // no limit return 0; // no limit
} }
/** /*
* What is the maximum length for a character literal * What is the maximum length for a character literal
* I suppose it is 8190 (8192 - 2 for the quotes) * I suppose it is 8190 (8192 - 2 for the quotes)
* *
...@@ -1137,7 +1137,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1137,7 +1137,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; // no limit return 0; // no limit
} }
/** /*
* Whats the limit on column name length. The description of * Whats the limit on column name length. The description of
* pg_class would say '32' (length of pg_class.relname) - we * pg_class would say '32' (length of pg_class.relname) - we
* should probably do a query for this....but.... * should probably do a query for this....but....
...@@ -1150,7 +1150,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1150,7 +1150,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 32; return 32;
} }
/** /*
* What is the maximum number of columns in a "GROUP BY" clause? * What is the maximum number of columns in a "GROUP BY" clause?
* *
* @return the max number of columns * @return the max number of columns
...@@ -1161,7 +1161,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1161,7 +1161,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; // no limit return 0; // no limit
} }
/** /*
* What's the maximum number of columns allowed in an index? * What's the maximum number of columns allowed in an index?
* 6.0 only allowed one column, but 6.1 introduced multi-column * 6.0 only allowed one column, but 6.1 introduced multi-column
* indices, so, theoretically, its all of them. * indices, so, theoretically, its all of them.
...@@ -1174,7 +1174,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1174,7 +1174,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return getMaxColumnsInTable(); return getMaxColumnsInTable();
} }
/** /*
* What's the maximum number of columns in an "ORDER BY clause? * What's the maximum number of columns in an "ORDER BY clause?
* *
* @return the max columns * @return the max columns
...@@ -1185,7 +1185,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1185,7 +1185,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; // no limit return 0; // no limit
} }
/** /*
* What is the maximum number of columns in a "SELECT" list? * What is the maximum number of columns in a "SELECT" list?
* *
* @return the max columns * @return the max columns
...@@ -1196,7 +1196,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1196,7 +1196,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; // no limit return 0; // no limit
} }
/** /*
* What is the maximum number of columns in a table? From the * What is the maximum number of columns in a table? From the
* CREATE TABLE reference page... * CREATE TABLE reference page...
* *
...@@ -1213,7 +1213,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1213,7 +1213,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 1600; return 1600;
} }
/** /*
* How many active connection can we have at a time to this * How many active connection can we have at a time to this
* database? Well, since it depends on postmaster, which just * database? Well, since it depends on postmaster, which just
* does a listen() followed by an accept() and fork(), its * does a listen() followed by an accept() and fork(), its
...@@ -1230,7 +1230,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1230,7 +1230,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 8192; return 8192;
} }
/** /*
* What is the maximum cursor name length (the same as all * What is the maximum cursor name length (the same as all
* the other F***** identifiers!) * the other F***** identifiers!)
* *
...@@ -1242,7 +1242,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1242,7 +1242,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 32; return 32;
} }
/** /*
* Retrieves the maximum number of bytes for an index, including all * Retrieves the maximum number of bytes for an index, including all
* of the parts of the index. * of the parts of the index.
* *
...@@ -1262,7 +1262,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1262,7 +1262,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; return 0;
} }
/** /*
* What is the maximum length of a procedure name? * What is the maximum length of a procedure name?
* (length of pg_proc.proname used) - again, I really * (length of pg_proc.proname used) - again, I really
* should do a query here to get it. * should do a query here to get it.
...@@ -1281,7 +1281,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1281,7 +1281,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; return 0;
} }
/** /*
* What is the maximum length of a single row? * What is the maximum length of a single row?
* *
* @return max row size in bytes * @return max row size in bytes
...@@ -1295,7 +1295,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1295,7 +1295,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 8192; // XXX could be altered return 8192; // XXX could be altered
} }
/** /*
* Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY * Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY
* blobs? We don't handle blobs yet * blobs? We don't handle blobs yet
* *
...@@ -1307,7 +1307,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1307,7 +1307,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* What is the maximum length of a SQL statement? * What is the maximum length of a SQL statement?
* *
* @return max length in bytes * @return max length in bytes
...@@ -1321,7 +1321,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1321,7 +1321,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 16384; return 16384;
} }
/** /*
* How many active statements can we have open at one time to * How many active statements can we have open at one time to
* this database? Basically, since each Statement downloads * this database? Basically, since each Statement downloads
* the results as the query is executed, we can have many. However, * the results as the query is executed, we can have many. However,
...@@ -1337,7 +1337,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1337,7 +1337,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 1; return 1;
} }
/** /*
* What is the maximum length of a table name? This was found * What is the maximum length of a table name? This was found
* from pg_class.relname length * from pg_class.relname length
* *
...@@ -1349,7 +1349,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1349,7 +1349,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 32; return 32;
} }
/** /*
* What is the maximum number of tables that can be specified * What is the maximum number of tables that can be specified
* in a SELECT? * in a SELECT?
* *
...@@ -1361,7 +1361,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1361,7 +1361,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; // no limit return 0; // no limit
} }
/** /*
* What is the maximum length of a user name? Well, we generally * What is the maximum length of a user name? Well, we generally
* use UNIX like user names in PostgreSQL, so I think this would * use UNIX like user names in PostgreSQL, so I think this would
* be 8. However, showing the schema for pg_user shows a length * be 8. However, showing the schema for pg_user shows a length
...@@ -1376,7 +1376,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1376,7 +1376,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
} }
/** /*
* What is the database's default transaction isolation level? We * What is the database's default transaction isolation level? We
* do not support this, so all transactions are SERIALIZABLE. * do not support this, so all transactions are SERIALIZABLE.
* *
...@@ -1389,7 +1389,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1389,7 +1389,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return Connection.TRANSACTION_READ_COMMITTED; return Connection.TRANSACTION_READ_COMMITTED;
} }
/** /*
* Are transactions supported? If not, commit and rollback are noops * Are transactions supported? If not, commit and rollback are noops
* and the isolation level is TRANSACTION_NONE. We do support * and the isolation level is TRANSACTION_NONE. We do support
* transactions. * transactions.
...@@ -1402,7 +1402,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1402,7 +1402,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Does the database support the given transaction isolation level? * Does the database support the given transaction isolation level?
* We only support TRANSACTION_SERIALIZABLE and TRANSACTION_READ_COMMITTED * We only support TRANSACTION_SERIALIZABLE and TRANSACTION_READ_COMMITTED
* *
...@@ -1420,7 +1420,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1420,7 +1420,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Are both data definition and data manipulation transactions * Are both data definition and data manipulation transactions
* supported? * supported?
* *
...@@ -1432,7 +1432,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1432,7 +1432,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Are only data manipulation statements withing a transaction * Are only data manipulation statements withing a transaction
* supported? * supported?
* *
...@@ -1444,7 +1444,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1444,7 +1444,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Does a data definition statement within a transaction force * Does a data definition statement within a transaction force
* the transaction to commit? I think this means something like: * the transaction to commit? I think this means something like:
* *
...@@ -1468,7 +1468,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1468,7 +1468,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Is a data definition statement within a transaction ignored? * Is a data definition statement within a transaction ignored?
* It seems to be (from experiment in previous method) * It seems to be (from experiment in previous method)
* *
...@@ -1480,7 +1480,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1480,7 +1480,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Get a description of stored procedures available in a catalog * Get a description of stored procedures available in a catalog
* *
* <p>Only procedure descriptions matching the schema and procedure * <p>Only procedure descriptions matching the schema and procedure
...@@ -1552,7 +1552,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1552,7 +1552,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get a description of a catalog's stored procedure parameters * Get a description of a catalog's stored procedure parameters
* and result columns. * and result columns.
* *
...@@ -1630,7 +1630,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1630,7 +1630,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get a description of tables available in a catalog. * Get a description of tables available in a catalog.
* *
* <p>Only table descriptions matching the catalog, schema, table * <p>Only table descriptions matching the catalog, schema, table
...@@ -1780,7 +1780,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1780,7 +1780,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
"TABLE", "VIEW", "INDEX", "SEQUENCE" "TABLE", "VIEW", "INDEX", "SEQUENCE"
}; };
/** /*
* Get the schema names available in this database. The results * Get the schema names available in this database. The results
* are ordered by schema name. * are ordered by schema name.
* *
...@@ -1805,7 +1805,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1805,7 +1805,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get the catalog names available in this database. The results * Get the catalog names available in this database. The results
* are ordered by catalog name. * are ordered by catalog name.
* *
...@@ -1822,7 +1822,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1822,7 +1822,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.createStatement().executeQuery("select datname as TABLE_CAT from pg_database;"); return connection.createStatement().executeQuery("select datname as TABLE_CAT from pg_database;");
} }
/** /*
* Get the table types available in this database. The results * Get the table types available in this database. The results
* are ordered by table type. * are ordered by table type.
* *
...@@ -1850,7 +1850,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1850,7 +1850,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get a description of table columns available in a catalog. * Get a description of table columns available in a catalog.
* *
* <P>Only column descriptions matching the catalog, schema, table * <P>Only column descriptions matching the catalog, schema, table
...@@ -2043,7 +2043,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2043,7 +2043,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get a description of the access rights for a table's columns. * Get a description of the access rights for a table's columns.
* *
* <P>Only privileges matching the column name criteria are * <P>Only privileges matching the column name criteria are
...@@ -2107,7 +2107,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2107,7 +2107,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get a description of the access rights for each table available * Get a description of the access rights for each table available
* in a catalog. * in a catalog.
* *
...@@ -2143,7 +2143,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2143,7 +2143,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
throw org.postgresql.Driver.notImplemented(); throw org.postgresql.Driver.notImplemented();
} }
/** /*
* Get a description of a table's optimal set of columns that * Get a description of a table's optimal set of columns that
* uniquely identifies a row. They are ordered by SCOPE. * uniquely identifies a row. They are ordered by SCOPE.
* *
...@@ -2197,7 +2197,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2197,7 +2197,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get a description of a table's columns that are automatically * Get a description of a table's columns that are automatically
* updated when any value in a row is updated. They are * updated when any value in a row is updated. They are
* unordered. * unordered.
...@@ -2232,7 +2232,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2232,7 +2232,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
throw org.postgresql.Driver.notImplemented(); throw org.postgresql.Driver.notImplemented();
} }
/** /*
* Get a description of a table's primary key columns. They * Get a description of a table's primary key columns. They
* are ordered by COLUMN_NAME. * are ordered by COLUMN_NAME.
* *
...@@ -2272,69 +2272,69 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2272,69 +2272,69 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
); );
} }
private java.sql.ResultSet getImportedExportedKeys(String catalog, String schema, String primaryTable, String foreignTable) throws SQLException private java.sql.ResultSet getImportedExportedKeys(String catalog, String schema, String primaryTable, String foreignTable) throws SQLException
{ {
Field f[]=new Field[14]; Field f[]=new Field[14];
f[0]=new Field(connection, "PKTABLE_CAT", iVarcharOid, 32); f[0]=new Field(connection, "PKTABLE_CAT", iVarcharOid, 32);
f[1]=new Field(connection, "PKTABLE_SCHEM", iVarcharOid, 32); f[1]=new Field(connection, "PKTABLE_SCHEM", iVarcharOid, 32);
f[2]=new Field(connection, "PKTABLE_NAME", iVarcharOid, 32); f[2]=new Field(connection, "PKTABLE_NAME", iVarcharOid, 32);
f[3]=new Field(connection, "PKCOLUMN_NAME", iVarcharOid, 32); f[3]=new Field(connection, "PKCOLUMN_NAME", iVarcharOid, 32);
f[4]=new Field(connection, "FKTABLE_CAT", iVarcharOid, 32); f[4]=new Field(connection, "FKTABLE_CAT", iVarcharOid, 32);
f[5]=new Field(connection, "FKTABLE_SCHEM", iVarcharOid, 32); f[5]=new Field(connection, "FKTABLE_SCHEM", iVarcharOid, 32);
f[6]=new Field(connection, "FKTABLE_NAME", iVarcharOid, 32); f[6]=new Field(connection, "FKTABLE_NAME", iVarcharOid, 32);
f[7]=new Field(connection, "FKCOLUMN_NAME", iVarcharOid, 32); f[7]=new Field(connection, "FKCOLUMN_NAME", iVarcharOid, 32);
f[8]=new Field(connection, "KEY_SEQ", iInt2Oid, 2); f[8]=new Field(connection, "KEY_SEQ", iInt2Oid, 2);
f[9]=new Field(connection, "UPDATE_RULE", iInt2Oid, 2); f[9]=new Field(connection, "UPDATE_RULE", iInt2Oid, 2);
f[10]=new Field(connection, "DELETE_RULE", iInt2Oid, 2); f[10]=new Field(connection, "DELETE_RULE", iInt2Oid, 2);
f[11]=new Field(connection, "FK_NAME", iVarcharOid, 32); f[11]=new Field(connection, "FK_NAME", iVarcharOid, 32);
f[12]=new Field(connection, "PK_NAME", iVarcharOid, 32); f[12]=new Field(connection, "PK_NAME", iVarcharOid, 32);
f[13]=new Field(connection, "DEFERRABILITY", iInt2Oid, 2); f[13]=new Field(connection, "DEFERRABILITY", iInt2Oid, 2);
java.sql.ResultSet rs = connection.ExecSQL("SELECT c.relname,c2.relname," java.sql.ResultSet rs = connection.ExecSQL("SELECT c.relname,c2.relname,"
+ "t.tgconstrname,ic.relname," + "t.tgconstrname,ic.relname,"
+ "t.tgdeferrable,t.tginitdeferred," + "t.tgdeferrable,t.tginitdeferred,"
+ "t.tgnargs,t.tgargs,p.proname " + "t.tgnargs,t.tgargs,p.proname "
+ "FROM pg_trigger t,pg_class c,pg_class c2," + "FROM pg_trigger t,pg_class c,pg_class c2,"
+ "pg_class ic,pg_proc p, pg_index i " + "pg_class ic,pg_proc p, pg_index i "
+ "WHERE t.tgrelid=c.oid AND t.tgconstrrelid=c2.oid " + "WHERE t.tgrelid=c.oid AND t.tgconstrrelid=c2.oid "
+ "AND t.tgfoid=p.oid AND tgisconstraint " + "AND t.tgfoid=p.oid AND tgisconstraint "
+ ((primaryTable!=null) ? "AND c2.relname='"+primaryTable+"' " : "") + ((primaryTable!=null) ? "AND c2.relname='"+primaryTable+"' " : "")
+ ((foreignTable!=null) ? "AND c.relname='"+foreignTable+"' " : "") + ((foreignTable!=null) ? "AND c.relname='"+foreignTable+"' " : "")
+ "AND i.indrelid=c.oid " + "AND i.indrelid=c.oid "
+ "AND i.indexrelid=ic.oid AND i.indisprimary " + "AND i.indexrelid=ic.oid AND i.indisprimary "
+ "ORDER BY c.relname,c2.relname" + "ORDER BY c.relname,c2.relname"
); );
Vector tuples = new Vector(); Vector tuples = new Vector();
short seq=0; short seq=0;
if(rs.next()) { if (rs.next()) {
boolean hasMore; boolean hasMore;
do { do {
byte tuple[][]=new byte[14][0]; byte tuple[][]=new byte[14][0];
for (int k = 0;k < 14;k++) for (int k = 0;k < 14;k++)
tuple[k] = null; tuple[k] = null;
String fKeyName=rs.getString(3); String fKeyName=rs.getString(3);
boolean foundRule=false; boolean foundRule=false;
do { do {
String proname=rs.getString(9); String proname=rs.getString(9);
if(proname!=null && proname.startsWith("RI_FKey_")) { if (proname!=null && proname.startsWith("RI_FKey_")) {
int col=-1; int col=-1;
if(proname.endsWith("_upd")) col=9; // UPDATE_RULE if (proname.endsWith("_upd")) col=9; // UPDATE_RULE
else if(proname.endsWith("_del")) col=10; // DELETE_RULE else if (proname.endsWith("_del")) col=10; // DELETE_RULE
if(col>-1) { if (col>-1) {
String rule=proname.substring(8, proname.length()-4); String rule=proname.substring(8, proname.length()-4);
int action=importedKeyNoAction; int action=importedKeyNoAction;
if("cascade".equals(rule)) action=importedKeyCascade; if ("cascade".equals(rule)) action=importedKeyCascade;
else if("setnull".equals(rule)) action=importedKeySetNull; else if ("setnull".equals(rule)) action=importedKeySetNull;
else if("setdefault".equals(rule)) action=importedKeySetDefault; else if ("setdefault".equals(rule)) action=importedKeySetDefault;
tuple[col]=Integer.toString(action).getBytes(); tuple[col]=Integer.toString(action).getBytes();
foundRule=true; foundRule=true;
} }
} }
} while((hasMore=rs.next()) && fKeyName.equals(rs.getString(3))); } while ((hasMore=rs.next()) && fKeyName.equals(rs.getString(3)));
if(foundRule) { if (foundRule) {
tuple[2]=rs.getBytes(2); //PKTABLE_NAME tuple[2]=rs.getBytes(2); //PKTABLE_NAME
tuple[6]=rs.getBytes(1); //FKTABLE_NAME tuple[6]=rs.getBytes(1); //FKTABLE_NAME
...@@ -2345,18 +2345,18 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2345,18 +2345,18 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
String s=rs.getString(8); String s=rs.getString(8);
int pos=s.lastIndexOf("\\000"); int pos=s.lastIndexOf("\\000");
for(int c=0;c<numColumns;c++) { for(int c=0;c<numColumns;c++) {
if(pos>-1) { if (pos>-1) {
int pos2=s.lastIndexOf("\\000", pos-1); int pos2=s.lastIndexOf("\\000", pos-1);
if(pos2>-1) { if (pos2>-1) {
if(fkeyColumns.length()>0) fkeyColumns.insert(0, ','); if (fkeyColumns.length()>0) fkeyColumns.insert(0, ',');
fkeyColumns.insert(0, s.substring(pos2+4, pos)); //FKCOLUMN_NAME fkeyColumns.insert(0, s.substring(pos2+4, pos)); //FKCOLUMN_NAME
pos=s.lastIndexOf("\\000", pos2-1); pos=s.lastIndexOf("\\000", pos2-1);
if(pos>-1) { if (pos>-1) {
if(pkeyColumns.length()>0) pkeyColumns.insert(0, ','); if (pkeyColumns.length()>0) pkeyColumns.insert(0, ',');
pkeyColumns.insert(0, s.substring(pos+4, pos2)); //PKCOLUMN_NAME pkeyColumns.insert(0, s.substring(pos+4, pos2)); //PKCOLUMN_NAME
} }
}
} }
}
} }
tuple[7]=fkeyColumns.toString().getBytes(); //FKCOLUMN_NAME tuple[7]=fkeyColumns.toString().getBytes(); //FKCOLUMN_NAME
tuple[3]=pkeyColumns.toString().getBytes(); //PKCOLUMN_NAME tuple[3]=pkeyColumns.toString().getBytes(); //PKCOLUMN_NAME
...@@ -2369,8 +2369,8 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2369,8 +2369,8 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
int deferrability=importedKeyNotDeferrable; int deferrability=importedKeyNotDeferrable;
boolean deferrable=rs.getBoolean(5); boolean deferrable=rs.getBoolean(5);
boolean initiallyDeferred=rs.getBoolean(6); boolean initiallyDeferred=rs.getBoolean(6);
if(deferrable) { if (deferrable) {
if(initiallyDeferred) if (initiallyDeferred)
deferrability=importedKeyInitiallyDeferred; deferrability=importedKeyInitiallyDeferred;
else else
deferrability=importedKeyInitiallyImmediate; deferrability=importedKeyInitiallyImmediate;
...@@ -2379,13 +2379,13 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2379,13 +2379,13 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
tuples.addElement(tuple); tuples.addElement(tuple);
} }
} while(hasMore); } while (hasMore);
} }
return new ResultSet(connection, f, tuples, "OK", 1); return new ResultSet(connection, f, tuples, "OK", 1);
} }
/** /*
* Get a description of the primary key columns that are * Get a description of the primary key columns that are
* referenced by a table's foreign key columns (the primary keys * referenced by a table's foreign key columns (the primary keys
* imported by a table). They are ordered by PKTABLE_CAT, * imported by a table). They are ordered by PKTABLE_CAT,
...@@ -2436,12 +2436,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2436,12 +2436,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
* @return ResultSet each row is a primary key column description * @return ResultSet each row is a primary key column description
* @see #getExportedKeys * @see #getExportedKeys
*/ */
public java.sql.ResultSet getImportedKeys(String catalog, String schema, String table) throws SQLException public java.sql.ResultSet getImportedKeys(String catalog, String schema, String table) throws SQLException
{ {
return getImportedExportedKeys(catalog, schema, null, table); return getImportedExportedKeys(catalog, schema, null, table);
} }
/** /*
* Get a description of a foreign key columns that reference a * Get a description of a foreign key columns that reference a
* table's primary key columns (the foreign keys exported by a * table's primary key columns (the foreign keys exported by a
* table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM, * table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM,
...@@ -2499,7 +2499,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2499,7 +2499,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return getImportedExportedKeys(catalog, schema, table, null); return getImportedExportedKeys(catalog, schema, table, null);
} }
/** /*
* Get a description of the foreign key columns in the foreign key * Get a description of the foreign key columns in the foreign key
* table that reference the primary key columns of the primary key * table that reference the primary key columns of the primary key
* table (describe how one table imports another's key.) This * table (describe how one table imports another's key.) This
...@@ -2560,7 +2560,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2560,7 +2560,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return getImportedExportedKeys(primaryCatalog, primarySchema, primaryTable, foreignTable); return getImportedExportedKeys(primaryCatalog, primarySchema, primaryTable, foreignTable);
} }
/** /*
* Get a description of all the standard SQL types supported by * Get a description of all the standard SQL types supported by
* this database. They are ordered by DATA_TYPE and then by how * this database. They are ordered by DATA_TYPE and then by how
* closely the data type maps to the corresponding JDBC SQL type. * closely the data type maps to the corresponding JDBC SQL type.
...@@ -2667,7 +2667,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2667,7 +2667,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
throw new PSQLException("postgresql.metadata.unavailable"); throw new PSQLException("postgresql.metadata.unavailable");
} }
/** /*
* Get a description of a table's indices and statistics. They are * Get a description of a table's indices and statistics. They are
* ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION. * ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION.
* *
......
...@@ -13,7 +13,7 @@ import java.util.*; ...@@ -13,7 +13,7 @@ import java.util.*;
import org.postgresql.largeobject.*; import org.postgresql.largeobject.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* A SQL Statement is pre-compiled and stored in a PreparedStatement object. * A SQL Statement is pre-compiled and stored in a PreparedStatement object.
* This object can then be used to efficiently execute this statement multiple * This object can then be used to efficiently execute this statement multiple
* times. * times.
...@@ -36,7 +36,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -36,7 +36,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
String[] inStrings; String[] inStrings;
Connection connection; Connection connection;
/** /*
* Constructor for the PreparedStatement class. * Constructor for the PreparedStatement class.
* Split the SQL statement into segments - separated by the arguments. * Split the SQL statement into segments - separated by the arguments.
* When we rebuild the thing with the arguments, we can substitute the * When we rebuild the thing with the arguments, we can substitute the
...@@ -78,7 +78,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -78,7 +78,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
templateStrings[i] = (String)v.elementAt(i); templateStrings[i] = (String)v.elementAt(i);
} }
/** /*
* A Prepared SQL query is executed and its ResultSet is returned * A Prepared SQL query is executed and its ResultSet is returned
* *
* @return a ResultSet that contains the data produced by the * @return a ResultSet that contains the data produced by the
...@@ -101,7 +101,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -101,7 +101,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
return super.executeQuery(s.toString()); // in Statement class return super.executeQuery(s.toString()); // in Statement class
} }
/** /*
* Execute a SQL INSERT, UPDATE or DELETE statement. In addition, * Execute a SQL INSERT, UPDATE or DELETE statement. In addition,
* SQL statements that return nothing such as SQL DDL statements can * SQL statements that return nothing such as SQL DDL statements can
* be executed. * be executed.
...@@ -126,7 +126,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -126,7 +126,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
return super.executeUpdate(s.toString()); // in Statement class return super.executeUpdate(s.toString()); // in Statement class
} }
/** /*
* Set a parameter to SQL NULL * Set a parameter to SQL NULL
* *
* <p><B>Note:</B> You must specify the parameters SQL type (although * <p><B>Note:</B> You must specify the parameters SQL type (although
...@@ -141,7 +141,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -141,7 +141,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, "null"); set(parameterIndex, "null");
} }
/** /*
* Set a parameter to a Java boolean value. The driver converts this * Set a parameter to a Java boolean value. The driver converts this
* to a SQL BIT value when it sends it to the database. * to a SQL BIT value when it sends it to the database.
* *
...@@ -154,7 +154,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -154,7 +154,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, x ? "'t'" : "'f'"); set(parameterIndex, x ? "'t'" : "'f'");
} }
/** /*
* Set a parameter to a Java byte value. The driver converts this to * Set a parameter to a Java byte value. The driver converts this to
* a SQL TINYINT value when it sends it to the database. * a SQL TINYINT value when it sends it to the database.
* *
...@@ -167,7 +167,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -167,7 +167,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, Integer.toString(x)); set(parameterIndex, Integer.toString(x));
} }
/** /*
* Set a parameter to a Java short value. The driver converts this * Set a parameter to a Java short value. The driver converts this
* to a SQL SMALLINT value when it sends it to the database. * to a SQL SMALLINT value when it sends it to the database.
* *
...@@ -180,7 +180,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -180,7 +180,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, Integer.toString(x)); set(parameterIndex, Integer.toString(x));
} }
/** /*
* Set a parameter to a Java int value. The driver converts this to * Set a parameter to a Java int value. The driver converts this to
* a SQL INTEGER value when it sends it to the database. * a SQL INTEGER value when it sends it to the database.
* *
...@@ -193,7 +193,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -193,7 +193,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, Integer.toString(x)); set(parameterIndex, Integer.toString(x));
} }
/** /*
* Set a parameter to a Java long value. The driver converts this to * Set a parameter to a Java long value. The driver converts this to
* a SQL BIGINT value when it sends it to the database. * a SQL BIGINT value when it sends it to the database.
* *
...@@ -206,7 +206,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -206,7 +206,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, Long.toString(x)); set(parameterIndex, Long.toString(x));
} }
/** /*
* Set a parameter to a Java float value. The driver converts this * Set a parameter to a Java float value. The driver converts this
* to a SQL FLOAT value when it sends it to the database. * to a SQL FLOAT value when it sends it to the database.
* *
...@@ -219,7 +219,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -219,7 +219,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, Float.toString(x)); set(parameterIndex, Float.toString(x));
} }
/** /*
* Set a parameter to a Java double value. The driver converts this * Set a parameter to a Java double value. The driver converts this
* to a SQL DOUBLE value when it sends it to the database * to a SQL DOUBLE value when it sends it to the database
* *
...@@ -232,7 +232,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -232,7 +232,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, Double.toString(x)); set(parameterIndex, Double.toString(x));
} }
/** /*
* Set a parameter to a java.lang.BigDecimal value. The driver * Set a parameter to a java.lang.BigDecimal value. The driver
* converts this to a SQL NUMERIC value when it sends it to the * converts this to a SQL NUMERIC value when it sends it to the
* database. * database.
...@@ -246,7 +246,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -246,7 +246,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, x.toString()); set(parameterIndex, x.toString());
} }
/** /*
* Set a parameter to a Java String value. The driver converts this * Set a parameter to a Java String value. The driver converts this
* to a SQL VARCHAR or LONGVARCHAR value (depending on the arguments * to a SQL VARCHAR or LONGVARCHAR value (depending on the arguments
* size relative to the driver's limits on VARCHARs) when it sends it * size relative to the driver's limits on VARCHARs) when it sends it
...@@ -279,7 +279,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -279,7 +279,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* Set a parameter to a Java array of bytes. The driver converts this * Set a parameter to a Java array of bytes. The driver converts this
* to a SQL VARBINARY or LONGVARBINARY (depending on the argument's * to a SQL VARBINARY or LONGVARBINARY (depending on the argument's
* size relative to the driver's limits on VARBINARYs) when it sends * size relative to the driver's limits on VARBINARYs) when it sends
...@@ -319,7 +319,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -319,7 +319,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* Set a parameter to a java.sql.Date value. The driver converts this * Set a parameter to a java.sql.Date value. The driver converts this
* to a SQL DATE value when it sends it to the database. * to a SQL DATE value when it sends it to the database.
* *
...@@ -350,7 +350,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -350,7 +350,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
//set(parameterIndex, df.format(new java.util.Date(x.getTime()+86400000))); //set(parameterIndex, df.format(new java.util.Date(x.getTime()+86400000)));
} }
/** /*
* Set a parameter to a java.sql.Time value. The driver converts * Set a parameter to a java.sql.Time value. The driver converts
* this to a SQL TIME value when it sends it to the database. * this to a SQL TIME value when it sends it to the database.
* *
...@@ -370,7 +370,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -370,7 +370,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* Set a parameter to a java.sql.Timestamp value. The driver converts * Set a parameter to a java.sql.Timestamp value. The driver converts
* this to a SQL TIMESTAMP value when it sends it to the database. * this to a SQL TIMESTAMP value when it sends it to the database.
* *
...@@ -394,7 +394,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -394,7 +394,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* When a very large ASCII value is input to a LONGVARCHAR parameter, * When a very large ASCII value is input to a LONGVARCHAR parameter,
* it may be more practical to send it via a java.io.InputStream. * it may be more practical to send it via a java.io.InputStream.
* JDBC will read the data from the stream as needed, until it reaches * JDBC will read the data from the stream as needed, until it reaches
...@@ -444,7 +444,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -444,7 +444,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* When a very large Unicode value is input to a LONGVARCHAR parameter, * When a very large Unicode value is input to a LONGVARCHAR parameter,
* it may be more practical to send it via a java.io.InputStream. * it may be more practical to send it via a java.io.InputStream.
* JDBC will read the data from the stream as needed, until it reaches * JDBC will read the data from the stream as needed, until it reaches
...@@ -493,7 +493,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -493,7 +493,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* When a very large binary value is input to a LONGVARBINARY parameter, * When a very large binary value is input to a LONGVARBINARY parameter,
* it may be more practical to send it via a java.io.InputStream. * it may be more practical to send it via a java.io.InputStream.
* JDBC will read the data from the stream as needed, until it reaches * JDBC will read the data from the stream as needed, until it reaches
...@@ -572,7 +572,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -572,7 +572,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* In general, parameter values remain in force for repeated used of a * In general, parameter values remain in force for repeated used of a
* Statement. Setting a parameter value automatically clears its * Statement. Setting a parameter value automatically clears its
* previous value. However, in coms cases, it is useful to immediately * previous value. However, in coms cases, it is useful to immediately
...@@ -589,7 +589,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -589,7 +589,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
inStrings[i] = null; inStrings[i] = null;
} }
/** /*
* Set the value of a parameter using an object; use the java.lang * Set the value of a parameter using an object; use the java.lang
* equivalent objects for integral values. * equivalent objects for integral values.
* *
...@@ -672,7 +672,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -672,7 +672,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
setObject(parameterIndex, x, targetSqlType, 0); setObject(parameterIndex, x, targetSqlType, 0);
} }
/** /*
* This stores an Object into a parameter. * This stores an Object into a parameter.
* <p>New for 6.4, if the object is not recognised, but it is * <p>New for 6.4, if the object is not recognised, but it is
* Serializable, then the object is serialised using the * Serializable, then the object is serialised using the
...@@ -715,7 +715,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -715,7 +715,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
setLong(parameterIndex, connection.putObject(x)); setLong(parameterIndex, connection.putObject(x));
} }
/** /*
* Some prepared statements return multiple results; the execute method * Some prepared statements return multiple results; the execute method
* handles these complex statements as well as the simpler form of * handles these complex statements as well as the simpler form of
* statements handled by executeQuery and executeUpdate * statements handled by executeQuery and executeUpdate
...@@ -740,7 +740,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -740,7 +740,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
return super.execute(s.toString()); // in Statement class return super.execute(s.toString()); // in Statement class
} }
/** /*
* Returns the SQL statement with the current template values * Returns the SQL statement with the current template values
* substituted. * substituted.
*/ */
...@@ -765,7 +765,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -765,7 +765,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
// END OF PUBLIC INTERFACE // END OF PUBLIC INTERFACE
// ************************************************************** // **************************************************************
/** /*
* There are a lot of setXXX classes which all basically do * There are a lot of setXXX classes which all basically do
* the same thing. We need a method which actually does the * the same thing. We need a method which actually does the
* set for us. * set for us.
......
...@@ -16,7 +16,7 @@ import org.postgresql.largeobject.*; ...@@ -16,7 +16,7 @@ import org.postgresql.largeobject.*;
import org.postgresql.util.*; import org.postgresql.util.*;
import org.postgresql.core.Encoding; import org.postgresql.core.Encoding;
/** /*
* A ResultSet provides access to a table of data generated by executing a * A ResultSet provides access to a table of data generated by executing a
* Statement. The table rows are retrieved in sequence. Within a row its * Statement. The table rows are retrieved in sequence. Within a row its
* column values can be accessed in any order. * column values can be accessed in any order.
...@@ -59,7 +59,7 @@ import org.postgresql.core.Encoding; ...@@ -59,7 +59,7 @@ import org.postgresql.core.Encoding;
*/ */
public class ResultSet extends org.postgresql.ResultSet implements java.sql.ResultSet public class ResultSet extends org.postgresql.ResultSet implements java.sql.ResultSet
{ {
/** /*
* Create a new ResultSet - Note that we create ResultSets to * Create a new ResultSet - Note that we create ResultSets to
* represent the results of everything. * represent the results of everything.
* *
...@@ -75,7 +75,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -75,7 +75,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
super(conn, fields, tuples, status, updateCount, insertOID, binaryCursor); super(conn, fields, tuples, status, updateCount, insertOID, binaryCursor);
} }
/** /*
* Create a new ResultSet - Note that we create ResultSets to * Create a new ResultSet - Note that we create ResultSets to
* represent the results of everything. * represent the results of everything.
* *
...@@ -91,7 +91,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -91,7 +91,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
super(conn, fields, tuples, status, updateCount, 0, false); super(conn, fields, tuples, status, updateCount, 0, false);
} }
/** /*
* A ResultSet is initially positioned before its first row, * A ResultSet is initially positioned before its first row,
* the first call to next makes the first row the current row; * the first call to next makes the first row the current row;
* the second call makes the second row the current row, etc. * the second call makes the second row the current row, etc.
...@@ -112,7 +112,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -112,7 +112,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return true; return true;
} }
/** /*
* In some cases, it is desirable to immediately release a ResultSet * In some cases, it is desirable to immediately release a ResultSet
* database and JDBC resources instead of waiting for this to happen * database and JDBC resources instead of waiting for this to happen
* when it is automatically closed. The close method provides this * when it is automatically closed. The close method provides this
...@@ -132,7 +132,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -132,7 +132,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
rows.setSize(0); rows.setSize(0);
} }
/** /*
* A column may have the value of SQL NULL; wasNull() reports whether * A column may have the value of SQL NULL; wasNull() reports whether
* the last column read had this special value. Note that you must * the last column read had this special value. Note that you must
* first call getXXX on a column to try to read its value and then * first call getXXX on a column to try to read its value and then
...@@ -146,7 +146,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -146,7 +146,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return wasNullFlag; return wasNullFlag;
} }
/** /*
* Get the value of a column in the current row as a Java String * Get the value of a column in the current row as a Java String
* *
* @param columnIndex the first column is 1, the second is 2... * @param columnIndex the first column is 1, the second is 2...
...@@ -166,7 +166,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -166,7 +166,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return encoding.decode(this_row[columnIndex - 1]); return encoding.decode(this_row[columnIndex - 1]);
} }
/** /*
* Get the value of a column in the current row as a Java boolean * Get the value of a column in the current row as a Java boolean
* *
* @param columnIndex the first column is 1, the second is 2... * @param columnIndex the first column is 1, the second is 2...
...@@ -185,7 +185,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -185,7 +185,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return false; // SQL NULL return false; // SQL NULL
} }
/** /*
* Get the value of a column in the current row as a Java byte. * Get the value of a column in the current row as a Java byte.
* *
* @param columnIndex the first column is 1, the second is 2,... * @param columnIndex the first column is 1, the second is 2,...
...@@ -210,7 +210,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -210,7 +210,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return 0; // SQL NULL return 0; // SQL NULL
} }
/** /*
* Get the value of a column in the current row as a Java short. * Get the value of a column in the current row as a Java short.
* *
* @param columnIndex the first column is 1, the second is 2,... * @param columnIndex the first column is 1, the second is 2,...
...@@ -235,7 +235,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -235,7 +235,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return 0; // SQL NULL return 0; // SQL NULL
} }
/** /*
* Get the value of a column in the current row as a Java int. * Get the value of a column in the current row as a Java int.
* *
* @param columnIndex the first column is 1, the second is 2,... * @param columnIndex the first column is 1, the second is 2,...
...@@ -260,7 +260,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -260,7 +260,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return 0; // SQL NULL return 0; // SQL NULL
} }
/** /*
* Get the value of a column in the current row as a Java long. * Get the value of a column in the current row as a Java long.
* *
* @param columnIndex the first column is 1, the second is 2,... * @param columnIndex the first column is 1, the second is 2,...
...@@ -285,7 +285,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -285,7 +285,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return 0; // SQL NULL return 0; // SQL NULL
} }
/** /*
* Get the value of a column in the current row as a Java float. * Get the value of a column in the current row as a Java float.
* *
* @param columnIndex the first column is 1, the second is 2,... * @param columnIndex the first column is 1, the second is 2,...
...@@ -310,7 +310,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -310,7 +310,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return 0; // SQL NULL return 0; // SQL NULL
} }
/** /*
* Get the value of a column in the current row as a Java double. * Get the value of a column in the current row as a Java double.
* *
* @param columnIndex the first column is 1, the second is 2,... * @param columnIndex the first column is 1, the second is 2,...
...@@ -335,7 +335,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -335,7 +335,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return 0; // SQL NULL return 0; // SQL NULL
} }
/** /*
* Get the value of a column in the current row as a * Get the value of a column in the current row as a
* java.math.BigDecimal object * java.math.BigDecimal object
* *
...@@ -371,7 +371,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -371,7 +371,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return null; // SQL NULL return null; // SQL NULL
} }
/** /*
* Get the value of a column in the current row as a Java byte array. * Get the value of a column in the current row as a Java byte array.
* *
* <p>In normal use, the bytes represent the raw values returned by the * <p>In normal use, the bytes represent the raw values returned by the
...@@ -432,7 +432,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -432,7 +432,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return null; return null;
} }
/** /*
* Get the value of a column in the current row as a java.sql.Date * Get the value of a column in the current row as a java.sql.Date
* object * object
* *
...@@ -454,7 +454,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -454,7 +454,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
} }
} }
/** /*
* Get the value of a column in the current row as a java.sql.Time * Get the value of a column in the current row as a java.sql.Time
* object * object
* *
...@@ -485,7 +485,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -485,7 +485,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return null; // SQL NULL return null; // SQL NULL
} }
/** /*
* Get the value of a column in the current row as a * Get the value of a column in the current row as a
* java.sql.Timestamp object * java.sql.Timestamp object
* *
...@@ -599,7 +599,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -599,7 +599,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
} }
} }
/** /*
* A column value can be retrieved as a stream of ASCII characters * A column value can be retrieved as a stream of ASCII characters
* and then read in chunks from the stream. This method is * and then read in chunks from the stream. This method is
* particular suitable for retrieving large LONGVARCHAR values. * particular suitable for retrieving large LONGVARCHAR values.
...@@ -653,7 +653,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -653,7 +653,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
} }
} }
/** /*
* A column value can also be retrieved as a stream of Unicode * A column value can also be retrieved as a stream of Unicode
* characters. We implement this as a binary stream. * characters. We implement this as a binary stream.
* *
...@@ -695,7 +695,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -695,7 +695,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
} }
} }
/** /*
* A column value can also be retrieved as a binary strea. This * A column value can also be retrieved as a binary strea. This
* method is suitable for retrieving LONGVARBINARY values. * method is suitable for retrieving LONGVARBINARY values.
* *
...@@ -738,7 +738,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -738,7 +738,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return null; return null;
} }
/** /*
* The following routines simply convert the columnName into * The following routines simply convert the columnName into
* a columnIndex and then call the appropriate routine above. * a columnIndex and then call the appropriate routine above.
* *
...@@ -827,7 +827,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -827,7 +827,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return getBinaryStream(findColumn(columnName)); return getBinaryStream(findColumn(columnName));
} }
/** /*
* The first warning reported by calls on this ResultSet is * The first warning reported by calls on this ResultSet is
* returned. Subsequent ResultSet warnings will be chained * returned. Subsequent ResultSet warnings will be chained
* to this SQLWarning. * to this SQLWarning.
...@@ -848,7 +848,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -848,7 +848,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return warnings; return warnings;
} }
/** /*
* After this call, getWarnings returns null until a new warning * After this call, getWarnings returns null until a new warning
* is reported for this ResultSet * is reported for this ResultSet
* *
...@@ -859,7 +859,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -859,7 +859,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
warnings = null; warnings = null;
} }
/** /*
* Get the name of the SQL cursor used by this ResultSet * Get the name of the SQL cursor used by this ResultSet
* *
* <p>In SQL, a result table is retrieved though a cursor that is * <p>In SQL, a result table is retrieved though a cursor that is
...@@ -882,7 +882,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -882,7 +882,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return connection.getCursorName(); return connection.getCursorName();
} }
/** /*
* The numbers, types and properties of a ResultSet's columns are * The numbers, types and properties of a ResultSet's columns are
* provided by the getMetaData method * provided by the getMetaData method
* *
...@@ -894,7 +894,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -894,7 +894,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return new ResultSetMetaData(rows, fields); return new ResultSetMetaData(rows, fields);
} }
/** /*
* Get the value of a column in the current row as a Java object * Get the value of a column in the current row as a Java object
* *
* <p>This method will return the value of the given column as a * <p>This method will return the value of the given column as a
...@@ -966,7 +966,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -966,7 +966,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
} }
} }
/** /*
* Get the value of a column in the current row as a Java object * Get the value of a column in the current row as a Java object
* *
*<p> This method will return the value of the given column as a *<p> This method will return the value of the given column as a
...@@ -986,7 +986,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -986,7 +986,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return getObject(findColumn(columnName)); return getObject(findColumn(columnName));
} }
/** /*
* Map a ResultSet column name to a ResultSet column index * Map a ResultSet column name to a ResultSet column index
* *
* @param columnName the name of the column * @param columnName the name of the column
......
...@@ -16,7 +16,7 @@ import org.postgresql.util.*; ...@@ -16,7 +16,7 @@ import org.postgresql.util.*;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Types; import java.sql.Types;
/** /*
* A ResultSetMetaData object can be used to find out about the types and * A ResultSetMetaData object can be used to find out about the types and
* properties of the columns in a ResultSet * properties of the columns in a ResultSet
* *
...@@ -27,7 +27,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -27,7 +27,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
Vector rows; Vector rows;
Field[] fields; Field[] fields;
/** /*
* Initialise for a result with a tuple set and * Initialise for a result with a tuple set and
* a field descriptor set * a field descriptor set
* *
...@@ -40,7 +40,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -40,7 +40,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
this.fields = fields; this.fields = fields;
} }
/** /*
* Whats the number of columns in the ResultSet? * Whats the number of columns in the ResultSet?
* *
* @return the number * @return the number
...@@ -51,7 +51,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -51,7 +51,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return fields.length; return fields.length;
} }
/** /*
* Is the column automatically numbered (and thus read-only) * Is the column automatically numbered (and thus read-only)
* I believe that PostgreSQL does not support this feature. * I believe that PostgreSQL does not support this feature.
* *
...@@ -64,7 +64,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -64,7 +64,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return false; return false;
} }
/** /*
* Does a column's case matter? ASSUMPTION: Any field that is * Does a column's case matter? ASSUMPTION: Any field that is
* not obviously case insensitive is assumed to be case sensitive * not obviously case insensitive is assumed to be case sensitive
* *
...@@ -92,7 +92,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -92,7 +92,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
} }
} }
/** /*
* Can the column be used in a WHERE clause? Basically for * Can the column be used in a WHERE clause? Basically for
* this, I split the functions into two types: recognised * this, I split the functions into two types: recognised
* types (which are always useable), and OTHER types (which * types (which are always useable), and OTHER types (which
...@@ -119,7 +119,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -119,7 +119,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
} }
} }
/** /*
* Is the column a cash value? 6.1 introduced the cash/money * Is the column a cash value? 6.1 introduced the cash/money
* type, which haven't been incorporated as of 970414, so I * type, which haven't been incorporated as of 970414, so I
* just check the type name for both 'cash' and 'money' * just check the type name for both 'cash' and 'money'
...@@ -135,7 +135,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -135,7 +135,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return type_name.equals("cash") || type_name.equals("money"); return type_name.equals("cash") || type_name.equals("money");
} }
/** /*
* Indicates the nullability of values in the designated column. * Indicates the nullability of values in the designated column.
* *
* @param column the first column is 1, the second is 2... * @param column the first column is 1, the second is 2...
...@@ -152,7 +152,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -152,7 +152,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return columnNullableUnknown; return columnNullableUnknown;
} }
/** /*
* Is the column a signed number? In PostgreSQL, all numbers * Is the column a signed number? In PostgreSQL, all numbers
* are signed, so this is trivial. However, strings are not * are signed, so this is trivial. However, strings are not
* signed (duh!) * signed (duh!)
...@@ -182,7 +182,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -182,7 +182,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
} }
} }
/** /*
* What is the column's normal maximum width in characters? * What is the column's normal maximum width in characters?
* *
* @param column the first column is 1, the second is 2, etc. * @param column the first column is 1, the second is 2, etc.
...@@ -238,7 +238,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -238,7 +238,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return f.getLength(); return f.getLength();
} }
/** /*
* What is the suggested column title for use in printouts and * What is the suggested column title for use in printouts and
* displays? We suggest the ColumnName! * displays? We suggest the ColumnName!
* *
...@@ -251,7 +251,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -251,7 +251,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return getColumnName(column); return getColumnName(column);
} }
/** /*
* What's a column's name? * What's a column's name?
* *
* @param column the first column is 1, the second is 2, etc. * @param column the first column is 1, the second is 2, etc.
...@@ -266,7 +266,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -266,7 +266,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return "field" + column; return "field" + column;
} }
/** /*
* What is a column's table's schema? This relies on us knowing * What is a column's table's schema? This relies on us knowing
* the table name....which I don't know how to do as yet. The * the table name....which I don't know how to do as yet. The
* JDBC specification allows us to return "" if this is not * JDBC specification allows us to return "" if this is not
...@@ -281,7 +281,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -281,7 +281,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return ""; return "";
} }
/** /*
* What is a column's number of decimal digits. * What is a column's number of decimal digits.
* *
* @param column the first column is 1, the second is 2... * @param column the first column is 1, the second is 2...
...@@ -317,7 +317,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -317,7 +317,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
} }
} }
/** /*
* What is a column's number of digits to the right of the * What is a column's number of digits to the right of the
* decimal point? * decimal point?
* *
...@@ -354,7 +354,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -354,7 +354,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
} }
} }
/** /*
* Whats a column's table's name? How do I find this out? Both * Whats a column's table's name? How do I find this out? Both
* getSchemaName() and getCatalogName() rely on knowing the table * getSchemaName() and getCatalogName() rely on knowing the table
* Name, so we need this before we can work on them. * Name, so we need this before we can work on them.
...@@ -368,7 +368,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -368,7 +368,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return ""; return "";
} }
/** /*
* What's a column's table's catalog name? As with getSchemaName(), * What's a column's table's catalog name? As with getSchemaName(),
* we can say that if getTableName() returns n/a, then we can too - * we can say that if getTableName() returns n/a, then we can too -
* otherwise, we need to work on it. * otherwise, we need to work on it.
...@@ -382,7 +382,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -382,7 +382,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return ""; return "";
} }
/** /*
* What is a column's SQL Type? (java.sql.Type int) * What is a column's SQL Type? (java.sql.Type int)
* *
* @param column the first column is 1, the second is 2, etc. * @param column the first column is 1, the second is 2, etc.
...@@ -396,7 +396,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -396,7 +396,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return getField(column).getSQLType(); return getField(column).getSQLType();
} }
/** /*
* Whats is the column's data source specific type name? * Whats is the column's data source specific type name?
* *
* @param column the first column is 1, the second is 2, etc. * @param column the first column is 1, the second is 2, etc.
...@@ -408,7 +408,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -408,7 +408,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return getField(column).getPGType(); return getField(column).getPGType();
} }
/** /*
* Is the column definitely not writable? In reality, we would * Is the column definitely not writable? In reality, we would
* have to check the GRANT/REVOKE stuff for this to be effective, * have to check the GRANT/REVOKE stuff for this to be effective,
* and I haven't really looked into that yet, so this will get * and I haven't really looked into that yet, so this will get
...@@ -423,7 +423,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -423,7 +423,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return false; return false;
} }
/** /*
* Is it possible for a write on the column to succeed? Again, we * Is it possible for a write on the column to succeed? Again, we
* would in reality have to check the GRANT/REVOKE stuff, which * would in reality have to check the GRANT/REVOKE stuff, which
* I haven't worked with as yet. However, if it isn't ReadOnly, then * I haven't worked with as yet. However, if it isn't ReadOnly, then
...@@ -438,7 +438,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -438,7 +438,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return !isReadOnly(column); return !isReadOnly(column);
} }
/** /*
* Will a write on this column definately succeed? Hmmm...this * Will a write on this column definately succeed? Hmmm...this
* is a bad one, since the two preceding functions have not been * is a bad one, since the two preceding functions have not been
* really defined. I cannot tell is the short answer. I thus * really defined. I cannot tell is the short answer. I thus
...@@ -457,7 +457,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -457,7 +457,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
// END OF PUBLIC INTERFACE // END OF PUBLIC INTERFACE
// ******************************************************** // ********************************************************
/** /*
* For several routines in this package, we need to convert * For several routines in this package, we need to convert
* a columnIndex into a Field[] descriptor. Rather than do * a columnIndex into a Field[] descriptor. Rather than do
* the same code several times, here it is. * the same code several times, here it is.
......
...@@ -9,7 +9,7 @@ import java.sql.*; ...@@ -9,7 +9,7 @@ import java.sql.*;
import org.postgresql.util.PSQLException; import org.postgresql.util.PSQLException;
/** /*
* A Statement object is used for executing a static SQL statement and * A Statement object is used for executing a static SQL statement and
* obtaining the results produced by it. * obtaining the results produced by it.
* *
...@@ -26,7 +26,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -26,7 +26,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
{ {
private Connection connection; // The connection who created us private Connection connection; // The connection who created us
/** /*
* Constructor for a Statement. It simply sets the connection * Constructor for a Statement. It simply sets the connection
* that created us. * that created us.
* *
...@@ -37,7 +37,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -37,7 +37,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
connection = c; connection = c;
} }
/** /*
* Execute a SQL statement that retruns a single ResultSet * Execute a SQL statement that retruns a single ResultSet
* *
* @param sql typically a static SQL SELECT statement * @param sql typically a static SQL SELECT statement
...@@ -54,7 +54,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -54,7 +54,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
return result; return result;
} }
/** /*
* Execute a SQL INSERT, UPDATE or DELETE statement. In addition * Execute a SQL INSERT, UPDATE or DELETE statement. In addition
* SQL statements that return nothing such as SQL DDL statements * SQL statements that return nothing such as SQL DDL statements
* can be executed * can be executed
...@@ -71,7 +71,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -71,7 +71,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
return this.getUpdateCount(); return this.getUpdateCount();
} }
/** /*
* setCursorName defines the SQL cursor name that will be used by * setCursorName defines the SQL cursor name that will be used by
* subsequent execute methods. This name can then be used in SQL * subsequent execute methods. This name can then be used in SQL
* positioned update/delete statements to identify the current row * positioned update/delete statements to identify the current row
...@@ -95,7 +95,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -95,7 +95,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
connection.setCursorName(name); connection.setCursorName(name);
} }
/** /*
* Execute a SQL statement that may return multiple results. We * Execute a SQL statement that may return multiple results. We
* don't have to worry about this since we do not support multiple * don't have to worry about this since we do not support multiple
* ResultSets. You can use getResultSet or getUpdateCount to * ResultSets. You can use getResultSet or getUpdateCount to
...@@ -114,7 +114,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -114,7 +114,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
return (result != null && ((org.postgresql.ResultSet)result).reallyResultSet()); return (result != null && ((org.postgresql.ResultSet)result).reallyResultSet());
} }
/** /*
* getUpdateCount returns the current result as an update count, * getUpdateCount returns the current result as an update count,
* if the result is a ResultSet or there are no more results, -1 * if the result is a ResultSet or there are no more results, -1
* is returned. It should only be called once per result. * is returned. It should only be called once per result.
...@@ -131,7 +131,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -131,7 +131,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
return ((org.postgresql.ResultSet)result).getResultCount(); return ((org.postgresql.ResultSet)result).getResultCount();
} }
/** /*
* getMoreResults moves to a Statement's next result. If it returns * getMoreResults moves to a Statement's next result. If it returns
* true, this result is a ResulSet. * true, this result is a ResulSet.
* *
......
...@@ -7,7 +7,7 @@ import java.math.BigDecimal; ...@@ -7,7 +7,7 @@ import java.math.BigDecimal;
import org.postgresql.Field; import org.postgresql.Field;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* Array is used collect one column of query result data. * Array is used collect one column of query result data.
* *
* <p>Read a field of type Array into either a natively-typed * <p>Read a field of type Array into either a natively-typed
...@@ -31,7 +31,7 @@ public class Array implements java.sql.Array ...@@ -31,7 +31,7 @@ public class Array implements java.sql.Array
private int idx = 0; private int idx = 0;
private String rawString = null; private String rawString = null;
/** /*
* Create a new Array * Create a new Array
* *
* @param conn a database connection * @param conn a database connection
......
...@@ -8,7 +8,7 @@ package org.postgresql.jdbc2; ...@@ -8,7 +8,7 @@ package org.postgresql.jdbc2;
import java.sql.*; import java.sql.*;
import java.math.*; import java.math.*;
/** /*
* CallableStatement is used to execute SQL stored procedures. * CallableStatement is used to execute SQL stored procedures.
* *
* <p>JDBC provides a stored procedure SQL escape that allows stored * <p>JDBC provides a stored procedure SQL escape that allows stored
...@@ -41,7 +41,7 @@ import java.math.*; ...@@ -41,7 +41,7 @@ import java.math.*;
public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement implements java.sql.CallableStatement public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement implements java.sql.CallableStatement
{ {
/** /*
* @exception SQLException on failure * @exception SQLException on failure
*/ */
public CallableStatement(Connection c, String q) throws SQLException public CallableStatement(Connection c, String q) throws SQLException
...@@ -49,7 +49,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -49,7 +49,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
super(c, q); super(c, q);
} }
/** /*
* Before executing a stored procedure call you must explicitly * Before executing a stored procedure call you must explicitly
* call registerOutParameter to register the java.sql.Type of each * call registerOutParameter to register the java.sql.Type of each
* out parameter. * out parameter.
...@@ -67,7 +67,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -67,7 +67,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
public void registerOutParameter(int parameterIndex, int sqlType) throws SQLException public void registerOutParameter(int parameterIndex, int sqlType) throws SQLException
{} {}
/** /*
* You must also specify the scale for numeric/decimal types: * You must also specify the scale for numeric/decimal types:
* *
* <p>Note: When reading the value of an out parameter, you must use * <p>Note: When reading the value of an out parameter, you must use
...@@ -89,7 +89,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -89,7 +89,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
//return true; //return true;
//} //}
/** /*
* An OUT parameter may have the value of SQL NULL; wasNull * An OUT parameter may have the value of SQL NULL; wasNull
* reports whether the last value read has this special value. * reports whether the last value read has this special value.
* *
...@@ -109,7 +109,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -109,7 +109,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
//return null; //return null;
//} //}
/** /*
* Get the value of a CHAR, VARCHAR, or LONGVARCHAR parameter as a * Get the value of a CHAR, VARCHAR, or LONGVARCHAR parameter as a
* Java String. * Java String.
* *
...@@ -129,7 +129,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -129,7 +129,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
//return null; //return null;
//} //}
/** /*
* Get the value of a BIT parameter as a Java boolean. * Get the value of a BIT parameter as a Java boolean.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -141,7 +141,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -141,7 +141,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
return false; return false;
} }
/** /*
* Get the value of a TINYINT parameter as a Java byte. * Get the value of a TINYINT parameter as a Java byte.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -153,7 +153,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -153,7 +153,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
return 0; return 0;
} }
/** /*
* Get the value of a SMALLINT parameter as a Java short. * Get the value of a SMALLINT parameter as a Java short.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -165,7 +165,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -165,7 +165,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
return 0; return 0;
} }
/** /*
* Get the value of an INTEGER parameter as a Java int. * Get the value of an INTEGER parameter as a Java int.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -177,7 +177,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -177,7 +177,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
return 0; return 0;
} }
/** /*
* Get the value of a BIGINT parameter as a Java long. * Get the value of a BIGINT parameter as a Java long.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -189,7 +189,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -189,7 +189,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
return 0; return 0;
} }
/** /*
* Get the value of a FLOAT parameter as a Java float. * Get the value of a FLOAT parameter as a Java float.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -201,7 +201,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -201,7 +201,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
return (float) 0.0; return (float) 0.0;
} }
/** /*
* Get the value of a DOUBLE parameter as a Java double. * Get the value of a DOUBLE parameter as a Java double.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -213,7 +213,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -213,7 +213,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
return 0.0; return 0.0;
} }
/** /*
* Get the value of a NUMERIC parameter as a java.math.BigDecimal * Get the value of a NUMERIC parameter as a java.math.BigDecimal
* object. * object.
* *
...@@ -230,7 +230,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -230,7 +230,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
return null; return null;
} }
/** /*
* Get the value of a SQL BINARY or VARBINARY parameter as a Java * Get the value of a SQL BINARY or VARBINARY parameter as a Java
* byte[] * byte[]
* *
...@@ -248,7 +248,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -248,7 +248,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
//return null; //return null;
//} //}
/** /*
* Get the value of a SQL DATE parameter as a java.sql.Date object * Get the value of a SQL DATE parameter as a java.sql.Date object
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -260,7 +260,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -260,7 +260,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
return null; return null;
} }
/** /*
* Get the value of a SQL TIME parameter as a java.sql.Time object. * Get the value of a SQL TIME parameter as a java.sql.Time object.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -272,7 +272,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -272,7 +272,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
return null; return null;
} }
/** /*
* Get the value of a SQL TIMESTAMP parameter as a java.sql.Timestamp object. * Get the value of a SQL TIMESTAMP parameter as a java.sql.Timestamp object.
* *
* @param parameterIndex the first parameter is 1, the second is 2,... * @param parameterIndex the first parameter is 1, the second is 2,...
...@@ -296,7 +296,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im ...@@ -296,7 +296,7 @@ public class CallableStatement extends org.postgresql.jdbc2.PreparedStatement im
// getObject returns a Java object for the parameter. // getObject returns a Java object for the parameter.
// See the JDBC spec's "Dynamic Programming" chapter for details. // See the JDBC spec's "Dynamic Programming" chapter for details.
/** /*
* Get the value of a parameter as a Java object. * Get the value of a parameter as a Java object.
* *
* <p>This method returns a Java object whose type coresponds to the * <p>This method returns a Java object whose type coresponds to the
......
...@@ -16,8 +16,8 @@ import org.postgresql.fastpath.*; ...@@ -16,8 +16,8 @@ import org.postgresql.fastpath.*;
import org.postgresql.largeobject.*; import org.postgresql.largeobject.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* $Id: Connection.java,v 1.14 2001/10/25 05:59:59 momjian Exp $ * $Id: Connection.java,v 1.15 2001/11/19 22:33:38 momjian Exp $
* *
* A Connection represents a session with a specific database. Within the * A Connection represents a session with a specific database. Within the
* context of a Connection, SQL statements are executed and results are * context of a Connection, SQL statements are executed and results are
...@@ -39,12 +39,12 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -39,12 +39,12 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
// This is a cache of the DatabaseMetaData instance for this connection // This is a cache of the DatabaseMetaData instance for this connection
protected DatabaseMetaData metadata; protected DatabaseMetaData metadata;
/** /*
* The current type mappings * The current type mappings
*/ */
protected java.util.Map typemap; protected java.util.Map typemap;
/** /*
* SQL statements without parameters are normally executed using * SQL statements without parameters are normally executed using
* Statement objects. If the same SQL statement is executed many * Statement objects. If the same SQL statement is executed many
* times, it is more efficient to use a PreparedStatement * times, it is more efficient to use a PreparedStatement
...@@ -59,7 +59,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -59,7 +59,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
return createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); return createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY);
} }
/** /*
* SQL statements without parameters are normally executed using * SQL statements without parameters are normally executed using
* Statement objects. If the same SQL statement is executed many * Statement objects. If the same SQL statement is executed many
* times, it is more efficient to use a PreparedStatement * times, it is more efficient to use a PreparedStatement
...@@ -78,7 +78,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -78,7 +78,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
} }
/** /*
* A SQL statement with or without IN parameters can be pre-compiled * A SQL statement with or without IN parameters can be pre-compiled
* and stored in a PreparedStatement object. This object can then * and stored in a PreparedStatement object. This object can then
* be used to efficiently execute this statement multiple times. * be used to efficiently execute this statement multiple times.
...@@ -109,7 +109,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -109,7 +109,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
return s; return s;
} }
/** /*
* A SQL stored procedure call statement is handled by creating a * A SQL stored procedure call statement is handled by creating a
* CallableStatement for it. The CallableStatement provides methods * CallableStatement for it. The CallableStatement provides methods
* for setting up its IN and OUT parameters and methods for executing * for setting up its IN and OUT parameters and methods for executing
...@@ -142,7 +142,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -142,7 +142,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
//return s; //return s;
} }
/** /*
* Tests to see if a Connection is closed. * Tests to see if a Connection is closed.
* *
* Peter Feb 7 2000: Now I've discovered that this doesn't actually obey the * Peter Feb 7 2000: Now I've discovered that this doesn't actually obey the
...@@ -187,7 +187,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -187,7 +187,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
} }
} }
/** /*
* A connection's database is able to provide information describing * A connection's database is able to provide information describing
* its tables, its supported SQL grammar, its stored procedures, the * its tables, its supported SQL grammar, its stored procedures, the
* capabilities of this connection, etc. This information is made * capabilities of this connection, etc. This information is made
...@@ -203,7 +203,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -203,7 +203,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
return metadata; return metadata;
} }
/** /*
* This overides the method in org.postgresql.Connection and returns a * This overides the method in org.postgresql.Connection and returns a
* ResultSet. * ResultSet.
*/ */
...@@ -237,7 +237,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -237,7 +237,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
typemap = map; typemap = map;
} }
/** /*
* This overides the standard internal getObject method so that we can * This overides the standard internal getObject method so that we can
* check the jdbc2 type map first * check the jdbc2 type map first
* *
...@@ -280,7 +280,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -280,7 +280,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
return sqlType; return sqlType;
} }
/** /*
* This table holds the org.postgresql names for the types supported. * 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. * Any types that map to Types.OTHER (eg POINT) don't go into this table.
* They default automatically to Types.OTHER * They default automatically to Types.OTHER
...@@ -310,7 +310,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co ...@@ -310,7 +310,7 @@ public class Connection extends org.postgresql.Connection implements java.sql.Co
"_bytea" "_bytea"
}; };
/** /*
* This table holds the JDBC type for each entry above. * This table holds the JDBC type for each entry above.
* *
* Note: This must be in the same order as above * Note: This must be in the same order as above
......
...@@ -12,10 +12,10 @@ import org.postgresql.Driver; ...@@ -12,10 +12,10 @@ import org.postgresql.Driver;
import org.postgresql.Field; import org.postgresql.Field;
import org.postgresql.util.PSQLException; import org.postgresql.util.PSQLException;
/** /*
* This class provides information about the database as a whole. * This class provides information about the database as a whole.
* *
* $Id: DatabaseMetaData.java,v 1.45 2001/11/14 20:04:00 davec Exp $ * $Id: DatabaseMetaData.java,v 1.46 2001/11/19 22:33:39 momjian Exp $
* *
* <p>Many of the methods here return lists of information in ResultSets. You * <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 * can use the normal ResultSet methods such as getString and getInt to
...@@ -53,7 +53,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -53,7 +53,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
this.connection = conn; this.connection = conn;
} }
/** /*
* Can all the procedures returned by getProcedures be called * Can all the procedures returned by getProcedures be called
* by the current user? * by the current user?
* *
...@@ -62,11 +62,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -62,11 +62,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean allProceduresAreCallable() throws SQLException public boolean allProceduresAreCallable() throws SQLException
{ {
Driver.debug("allProceduresAreCallable"); Driver.debug("allProceduresAreCallable");
return true; // For now... return true; // For now...
} }
/** /*
* Can all the tables returned by getTable be SELECTed by * Can all the tables returned by getTable be SELECTed by
* the current user? * the current user?
* *
...@@ -75,11 +75,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -75,11 +75,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean allTablesAreSelectable() throws SQLException public boolean allTablesAreSelectable() throws SQLException
{ {
Driver.debug("allTablesAreSelectable"); Driver.debug("allTablesAreSelectable");
return true; // For now... return true; // For now...
} }
/** /*
* What is the URL for this database? * What is the URL for this database?
* *
* @return the url or null if it cannott be generated * @return the url or null if it cannott be generated
...@@ -87,12 +87,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -87,12 +87,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getURL() throws SQLException public String getURL() throws SQLException
{ {
String url = connection.getURL(); String url = connection.getURL();
Driver.debug("getURL "+url); Driver.debug("getURL "+url);
return url; return url;
} }
/** /*
* What is our user name as known to the database? * What is our user name as known to the database?
* *
* @return our database user name * @return our database user name
...@@ -100,12 +100,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -100,12 +100,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getUserName() throws SQLException public String getUserName() throws SQLException
{ {
String userName = connection.getUserName(); String userName = connection.getUserName();
Driver.debug("getUserName "+ userName); Driver.debug("getUserName "+ userName);
return userName; return userName;
} }
/** /*
* Is the database in read-only mode? * Is the database in read-only mode?
* *
* @return true if so * @return true if so
...@@ -113,12 +113,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -113,12 +113,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean isReadOnly() throws SQLException public boolean isReadOnly() throws SQLException
{ {
boolean isReadOnly = connection.isReadOnly(); boolean isReadOnly = connection.isReadOnly();
Driver.debug("isReadOnly " +isReadOnly); Driver.debug("isReadOnly " +isReadOnly);
return isReadOnly; return isReadOnly;
} }
/** /*
* Are NULL values sorted high? * Are NULL values sorted high?
* *
* @return true if so * @return true if so
...@@ -126,12 +126,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -126,12 +126,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean nullsAreSortedHigh() throws SQLException public boolean nullsAreSortedHigh() throws SQLException
{ {
boolean nullSortedHigh = connection.haveMinimumServerVersion("7.2"); boolean nullSortedHigh = connection.haveMinimumServerVersion("7.2");
Driver.debug("nullsAreSortedHigh " + nullSortedHigh); Driver.debug("nullsAreSortedHigh " + nullSortedHigh);
return nullSortedHigh; return nullSortedHigh;
} }
/** /*
* Are NULL values sorted low? * Are NULL values sorted low?
* *
* @return true if so * @return true if so
...@@ -139,11 +139,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -139,11 +139,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean nullsAreSortedLow() throws SQLException public boolean nullsAreSortedLow() throws SQLException
{ {
Driver.debug("nullsAreSortedLow false"); Driver.debug("nullsAreSortedLow false");
return false; return false;
} }
/** /*
* Are NULL values sorted at the start regardless of sort order? * Are NULL values sorted at the start regardless of sort order?
* *
* @return true if so * @return true if so
...@@ -151,11 +151,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -151,11 +151,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean nullsAreSortedAtStart() throws SQLException public boolean nullsAreSortedAtStart() throws SQLException
{ {
Driver.debug("nullsAreSortedAtStart false"); Driver.debug("nullsAreSortedAtStart false");
return false; return false;
} }
/** /*
* Are NULL values sorted at the end regardless of sort order? * Are NULL values sorted at the end regardless of sort order?
* *
* @return true if so * @return true if so
...@@ -163,12 +163,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -163,12 +163,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean nullsAreSortedAtEnd() throws SQLException public boolean nullsAreSortedAtEnd() throws SQLException
{ {
boolean nullsAreSortedAtEnd = ! connection.haveMinimumServerVersion("7.2"); boolean nullsAreSortedAtEnd = ! connection.haveMinimumServerVersion("7.2");
Driver.debug("nullsAreSortedAtEnd "+nullsAreSortedAtEnd); Driver.debug("nullsAreSortedAtEnd "+nullsAreSortedAtEnd);
return nullsAreSortedAtEnd; return nullsAreSortedAtEnd;
} }
/** /*
* What is the name of this database product - we hope that it is * What is the name of this database product - we hope that it is
* PostgreSQL, so we return that explicitly. * PostgreSQL, so we return that explicitly.
* *
...@@ -177,11 +177,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -177,11 +177,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getDatabaseProductName() throws SQLException public String getDatabaseProductName() throws SQLException
{ {
Driver.debug("getDatabaseProductName PostgresSQL"); Driver.debug("getDatabaseProductName PostgresSQL");
return "PostgreSQL"; return "PostgreSQL";
} }
/** /*
* What is the version of this database product. * What is the version of this database product.
* *
* @return the database version * @return the database version
...@@ -189,12 +189,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -189,12 +189,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getDatabaseProductVersion() throws SQLException public String getDatabaseProductVersion() throws SQLException
{ {
String versionNumber = connection.getDBVersionNumber(); String versionNumber = connection.getDBVersionNumber();
Driver.debug("getDatabaseProductVersion " + versionNumber); Driver.debug("getDatabaseProductVersion " + versionNumber);
return versionNumber; return versionNumber;
} }
/** /*
* What is the name of this JDBC driver? If we don't know this * What is the name of this JDBC driver? If we don't know this
* we are doing something wrong! * we are doing something wrong!
* *
...@@ -203,13 +203,13 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -203,13 +203,13 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getDriverName() throws SQLException public String getDriverName() throws SQLException
{ {
String driverName = "PostgreSQL Native Driver"; String driverName = "PostgreSQL Native Driver";
Driver.debug("getDriverName" + driverName); Driver.debug("getDriverName" + driverName);
return driverName; return driverName;
} }
/** /*
* What is the version string of this JDBC driver? Again, this is * What is the version string of this JDBC driver? Again, this is
* static. * static.
* *
* @return the JDBC driver name. * @return the JDBC driver name.
...@@ -217,37 +217,37 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -217,37 +217,37 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getDriverVersion() throws SQLException public String getDriverVersion() throws SQLException
{ {
String driverVersion = connection.this_driver.getVersion(); String driverVersion = connection.this_driver.getVersion();
Driver.debug("getDriverVersion "+driverVersion); Driver.debug("getDriverVersion "+driverVersion);
return driverVersion; return driverVersion;
} }
/** /*
* What is this JDBC driver's major version number? * What is this JDBC driver's major version number?
* *
* @return the JDBC driver major version * @return the JDBC driver major version
*/ */
public int getDriverMajorVersion() public int getDriverMajorVersion()
{ {
int majorVersion = connection.this_driver.getMajorVersion(); int majorVersion = connection.this_driver.getMajorVersion();
Driver.debug("getMajorVersion " +majorVersion); Driver.debug("getMajorVersion " +majorVersion);
return majorVersion; return majorVersion;
} }
/** /*
* What is this JDBC driver's minor version number? * What is this JDBC driver's minor version number?
* *
* @return the JDBC driver minor version * @return the JDBC driver minor version
*/ */
public int getDriverMinorVersion() public int getDriverMinorVersion()
{ {
int minorVersion = connection.this_driver.getMinorVersion(); int minorVersion = connection.this_driver.getMinorVersion();
Driver.debug("getMinorVersion " +minorVersion); Driver.debug("getMinorVersion " +minorVersion);
return minorVersion; return minorVersion;
} }
/** /*
* Does the database store tables in a local file? No - it * Does the database store tables in a local file? No - it
* stores them in a file on the server. * stores them in a file on the server.
* *
* @return true if so * @return true if so
...@@ -255,11 +255,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -255,11 +255,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean usesLocalFiles() throws SQLException public boolean usesLocalFiles() throws SQLException
{ {
Driver.debug("usesLocalFiles " + false); Driver.debug("usesLocalFiles " + false);
return false; return false;
} }
/** /*
* Does the database use a file for each table? Well, not really, * Does the database use a file for each table? Well, not really,
* since it doesnt use local files. * since it doesnt use local files.
* *
...@@ -268,11 +268,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -268,11 +268,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean usesLocalFilePerTable() throws SQLException public boolean usesLocalFilePerTable() throws SQLException
{ {
Driver.debug("usesLocalFilePerTable " + false); Driver.debug("usesLocalFilePerTable " + false);
return false; return false;
} }
/** /*
* Does the database treat mixed case unquoted SQL identifiers * Does the database treat mixed case unquoted SQL identifiers
* as case sensitive and as a result store them in mixed case? * as case sensitive and as a result store them in mixed case?
* A JDBC-Compliant driver will always return false. * A JDBC-Compliant driver will always return false.
...@@ -286,11 +286,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -286,11 +286,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsMixedCaseIdentifiers() throws SQLException public boolean supportsMixedCaseIdentifiers() throws SQLException
{ {
Driver.debug("supportsMixedCaseIdentifiers " + false); Driver.debug("supportsMixedCaseIdentifiers " + false);
return false; return false;
} }
/** /*
* Does the database treat mixed case unquoted SQL identifiers as * Does the database treat mixed case unquoted SQL identifiers as
* case insensitive and store them in upper case? * case insensitive and store them in upper case?
* *
...@@ -298,11 +298,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -298,11 +298,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean storesUpperCaseIdentifiers() throws SQLException public boolean storesUpperCaseIdentifiers() throws SQLException
{ {
Driver.debug("storesUpperCaseIdentifiers "+false); Driver.debug("storesUpperCaseIdentifiers "+false);
return false; return false;
} }
/** /*
* Does the database treat mixed case unquoted SQL identifiers as * Does the database treat mixed case unquoted SQL identifiers as
* case insensitive and store them in lower case? * case insensitive and store them in lower case?
* *
...@@ -310,11 +310,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -310,11 +310,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean storesLowerCaseIdentifiers() throws SQLException public boolean storesLowerCaseIdentifiers() throws SQLException
{ {
Driver.debug("storesLowerCaseIdentifiers " + true); Driver.debug("storesLowerCaseIdentifiers " + true);
return true; return true;
} }
/** /*
* Does the database treat mixed case unquoted SQL identifiers as * Does the database treat mixed case unquoted SQL identifiers as
* case insensitive and store them in mixed case? * case insensitive and store them in mixed case?
* *
...@@ -322,11 +322,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -322,11 +322,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean storesMixedCaseIdentifiers() throws SQLException public boolean storesMixedCaseIdentifiers() throws SQLException
{ {
Driver.debug("storesMixedCaseIdentifiers " + false); Driver.debug("storesMixedCaseIdentifiers " + false);
return false; return false;
} }
/** /*
* Does the database treat mixed case quoted SQL identifiers as * Does the database treat mixed case quoted SQL identifiers as
* case sensitive and as a result store them in mixed case? A * case sensitive and as a result store them in mixed case? A
* JDBC compliant driver will always return true. * JDBC compliant driver will always return true.
...@@ -336,11 +336,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -336,11 +336,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException
{ {
Driver.debug("supportsMixedCaseQuotedIdentifiers " + true); Driver.debug("supportsMixedCaseQuotedIdentifiers " + true);
return true; return true;
} }
/** /*
* Does the database treat mixed case quoted SQL identifiers as * Does the database treat mixed case quoted SQL identifiers as
* case insensitive and store them in upper case? * case insensitive and store them in upper case?
* *
...@@ -348,11 +348,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -348,11 +348,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean storesUpperCaseQuotedIdentifiers() throws SQLException public boolean storesUpperCaseQuotedIdentifiers() throws SQLException
{ {
Driver.debug("storesUpperCaseQuotedIdentifiers " + false); Driver.debug("storesUpperCaseQuotedIdentifiers " + false);
return false; return false;
} }
/** /*
* Does the database treat mixed case quoted SQL identifiers as case * Does the database treat mixed case quoted SQL identifiers as case
* insensitive and store them in lower case? * insensitive and store them in lower case?
* *
...@@ -360,11 +360,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -360,11 +360,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean storesLowerCaseQuotedIdentifiers() throws SQLException public boolean storesLowerCaseQuotedIdentifiers() throws SQLException
{ {
Driver.debug("storesLowerCaseQuotedIdentifiers " + false); Driver.debug("storesLowerCaseQuotedIdentifiers " + false);
return false; return false;
} }
/** /*
* Does the database treat mixed case quoted SQL identifiers as case * Does the database treat mixed case quoted SQL identifiers as case
* insensitive and store them in mixed case? * insensitive and store them in mixed case?
* *
...@@ -372,11 +372,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -372,11 +372,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean storesMixedCaseQuotedIdentifiers() throws SQLException public boolean storesMixedCaseQuotedIdentifiers() throws SQLException
{ {
Driver.debug("storesMixedCaseQuotedIdentifiers " + false); Driver.debug("storesMixedCaseQuotedIdentifiers " + false);
return false; return false;
} }
/** /*
* What is the string used to quote SQL identifiers? This returns * What is the string used to quote SQL identifiers? This returns
* a space if identifier quoting isn't supported. A JDBC Compliant * a space if identifier quoting isn't supported. A JDBC Compliant
* driver will always use a double quote character. * driver will always use a double quote character.
...@@ -386,11 +386,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -386,11 +386,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getIdentifierQuoteString() throws SQLException public String getIdentifierQuoteString() throws SQLException
{ {
Driver.debug("getIdentifierQuoteString \"" ); Driver.debug("getIdentifierQuoteString \"" );
return "\""; return "\"";
} }
/** /*
* Get a comma separated list of all a database's SQL keywords that * Get a comma separated list of all a database's SQL keywords that
* are NOT also SQL92 keywords. * are NOT also SQL92 keywords.
* *
...@@ -408,39 +408,39 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -408,39 +408,39 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getSQLKeywords() throws SQLException public String getSQLKeywords() throws SQLException
{ {
Driver.debug("getSQLKeyWords"); Driver.debug("getSQLKeyWords");
return "abort,acl,add,aggregate,append,archive,arch_store,backward,binary,change,cluster,copy,database,delimiters,do,extend,explain,forward,heavy,index,inherits,isnull,light,listen,load,merge,nothing,notify,notnull,oids,purge,rename,replace,retrieve,returns,rule,recipe,setof,stdin,stdout,store,vacuum,verbose,version"; return "abort,acl,add,aggregate,append,archive,arch_store,backward,binary,change,cluster,copy,database,delimiters,do,extend,explain,forward,heavy,index,inherits,isnull,light,listen,load,merge,nothing,notify,notnull,oids,purge,rename,replace,retrieve,returns,rule,recipe,setof,stdin,stdout,store,vacuum,verbose,version";
} }
public String getNumericFunctions() throws SQLException public String getNumericFunctions() throws SQLException
{ {
// XXX-Not Implemented // XXX-Not Implemented
Driver.debug("getNumericFunctions"); Driver.debug("getNumericFunctions");
return ""; return "";
} }
public String getStringFunctions() throws SQLException public String getStringFunctions() throws SQLException
{ {
// XXX-Not Implemented // XXX-Not Implemented
Driver.debug("getStringFunctions"); Driver.debug("getStringFunctions");
return ""; return "";
} }
public String getSystemFunctions() throws SQLException public String getSystemFunctions() throws SQLException
{ {
// XXX-Not Implemented // XXX-Not Implemented
Driver.debug("getSystemFunctions"); Driver.debug("getSystemFunctions");
return ""; return "";
} }
public String getTimeDateFunctions() throws SQLException public String getTimeDateFunctions() throws SQLException
{ {
// XXX-Not Implemented // XXX-Not Implemented
Driver.debug("getTimeDateFunctions"); Driver.debug("getTimeDateFunctions");
return ""; return "";
} }
/** /*
* This is the string that can be used to escape '_' and '%' in * This is the string that can be used to escape '_' and '%' in
* a search string pattern style catalog search parameters * a search string pattern style catalog search parameters
* *
...@@ -449,11 +449,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -449,11 +449,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getSearchStringEscape() throws SQLException public String getSearchStringEscape() throws SQLException
{ {
Driver.debug("getSearchStringEscape"); Driver.debug("getSearchStringEscape");
return "\\"; return "\\";
} }
/** /*
* Get all the "extra" characters that can be used in unquoted * Get all the "extra" characters that can be used in unquoted
* identifier names (those beyond a-zA-Z0-9 and _) * identifier names (those beyond a-zA-Z0-9 and _)
* *
...@@ -466,11 +466,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -466,11 +466,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getExtraNameCharacters() throws SQLException public String getExtraNameCharacters() throws SQLException
{ {
Driver.debug("getExtraNameCharacters"); Driver.debug("getExtraNameCharacters");
return ""; return "";
} }
/** /*
* Is "ALTER TABLE" with an add column supported? * Is "ALTER TABLE" with an add column supported?
* Yes for PostgreSQL 6.1 * Yes for PostgreSQL 6.1
* *
...@@ -479,11 +479,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -479,11 +479,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsAlterTableWithAddColumn() throws SQLException public boolean supportsAlterTableWithAddColumn() throws SQLException
{ {
Driver.debug("supportsAlterTableWithAddColumn " + true); Driver.debug("supportsAlterTableWithAddColumn " + true);
return true; return true;
} }
/** /*
* Is "ALTER TABLE" with a drop column supported? * Is "ALTER TABLE" with a drop column supported?
* Peter 10/10/2000 This was set to true, but 7.1devel doesn't support it! * Peter 10/10/2000 This was set to true, but 7.1devel doesn't support it!
* *
...@@ -492,11 +492,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -492,11 +492,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsAlterTableWithDropColumn() throws SQLException public boolean supportsAlterTableWithDropColumn() throws SQLException
{ {
Driver.debug("supportsAlterTableWithDropColumn " + false); Driver.debug("supportsAlterTableWithDropColumn " + false);
return false; return false;
} }
/** /*
* Is column aliasing supported? * Is column aliasing supported?
* *
* <p>If so, the SQL AS clause can be used to provide names for * <p>If so, the SQL AS clause can be used to provide names for
...@@ -516,11 +516,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -516,11 +516,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsColumnAliasing() throws SQLException public boolean supportsColumnAliasing() throws SQLException
{ {
Driver.debug("supportsColumnAliasing " + true); Driver.debug("supportsColumnAliasing " + true);
return true; return true;
} }
/** /*
* Are concatenations between NULL and non-NULL values NULL? A * Are concatenations between NULL and non-NULL values NULL? A
* JDBC Compliant driver always returns true * JDBC Compliant driver always returns true
* *
...@@ -529,25 +529,25 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -529,25 +529,25 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean nullPlusNonNullIsNull() throws SQLException public boolean nullPlusNonNullIsNull() throws SQLException
{ {
Driver.debug("nullPlusNonNullIsNull " + true); Driver.debug("nullPlusNonNullIsNull " + true);
return true; return true;
} }
public boolean supportsConvert() throws SQLException public boolean supportsConvert() throws SQLException
{ {
// XXX-Not Implemented // XXX-Not Implemented
Driver.debug("supportsConvert " + false); Driver.debug("supportsConvert " + false);
return false; return false;
} }
public boolean supportsConvert(int fromType, int toType) throws SQLException public boolean supportsConvert(int fromType, int toType) throws SQLException
{ {
// XXX-Not Implemented // XXX-Not Implemented
Driver.debug("supportsConvert " + false); Driver.debug("supportsConvert " + false);
return false; return false;
} }
/** /*
* Are table correlation names supported? A JDBC Compliant * Are table correlation names supported? A JDBC Compliant
* driver always returns true. * driver always returns true.
* *
...@@ -556,11 +556,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -556,11 +556,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsTableCorrelationNames() throws SQLException public boolean supportsTableCorrelationNames() throws SQLException
{ {
Driver.debug("supportsTableCorrelationNames " + true); Driver.debug("supportsTableCorrelationNames " + true);
return true; return true;
} }
/** /*
* If table correlation names are supported, are they restricted to * If table correlation names are supported, are they restricted to
* be different from the names of the tables? * be different from the names of the tables?
* *
...@@ -569,11 +569,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -569,11 +569,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsDifferentTableCorrelationNames() throws SQLException public boolean supportsDifferentTableCorrelationNames() throws SQLException
{ {
Driver.debug("supportsDifferentTableCorrelationNames " + false); Driver.debug("supportsDifferentTableCorrelationNames " + false);
return false; return false;
} }
/** /*
* Are expressions in "ORDER BY" lists supported? * Are expressions in "ORDER BY" lists supported?
* *
* <br>e.g. select * from t order by a + b; * <br>e.g. select * from t order by a + b;
...@@ -583,11 +583,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -583,11 +583,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsExpressionsInOrderBy() throws SQLException public boolean supportsExpressionsInOrderBy() throws SQLException
{ {
Driver.debug("supportsExpressionsInOrderBy " + true); Driver.debug("supportsExpressionsInOrderBy " + true);
return true; return true;
} }
/** /*
* Can an "ORDER BY" clause use columns not in the SELECT? * Can an "ORDER BY" clause use columns not in the SELECT?
* *
* @return true if so * @return true if so
...@@ -595,12 +595,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -595,12 +595,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsOrderByUnrelated() throws SQLException public boolean supportsOrderByUnrelated() throws SQLException
{ {
boolean supportsOrderByUnrelated = connection.haveMinimumServerVersion("6.4"); boolean supportsOrderByUnrelated = connection.haveMinimumServerVersion("6.4");
Driver.debug("supportsOrderByUnrelated " + supportsOrderByUnrelated); Driver.debug("supportsOrderByUnrelated " + supportsOrderByUnrelated);
return supportsOrderByUnrelated; return supportsOrderByUnrelated;
} }
/** /*
* Is some form of "GROUP BY" clause supported? * Is some form of "GROUP BY" clause supported?
* I checked it, and yes it is. * I checked it, and yes it is.
* *
...@@ -609,11 +609,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -609,11 +609,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsGroupBy() throws SQLException public boolean supportsGroupBy() throws SQLException
{ {
Driver.debug("supportsGroupBy " + true); Driver.debug("supportsGroupBy " + true);
return true; return true;
} }
/** /*
* Can a "GROUP BY" clause use columns not in the SELECT? * Can a "GROUP BY" clause use columns not in the SELECT?
* *
* @return true if so * @return true if so
...@@ -621,15 +621,14 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -621,15 +621,14 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsGroupByUnrelated() throws SQLException public boolean supportsGroupByUnrelated() throws SQLException
{ {
boolean supportsGroupByUnrelated = connection.haveMinimumServerVersion("6.4"); boolean supportsGroupByUnrelated = connection.haveMinimumServerVersion("6.4");
Driver.debug("supportsGroupByUnrelated "+ supportsGroupByUnrelated); Driver.debug("supportsGroupByUnrelated "+ supportsGroupByUnrelated);
return supportsGroupByUnrelated; return supportsGroupByUnrelated;
} }
/** /*
* Can a "GROUP BY" clause add columns not in the SELECT provided * Can a "GROUP BY" clause add columns not in the SELECT provided
* it specifies all the columns in the SELECT? Does anyone actually * it specifies all the columns in the SELECT? Does anyone actually
* understand what they mean here? * understand what they mean here?
* *
* (I think this is a subset of the previous function. -- petere) * (I think this is a subset of the previous function. -- petere)
...@@ -639,12 +638,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -639,12 +638,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsGroupByBeyondSelect() throws SQLException public boolean supportsGroupByBeyondSelect() throws SQLException
{ {
boolean supportsGroupByBeyondSelect = connection.haveMinimumServerVersion("6.4"); boolean supportsGroupByBeyondSelect = connection.haveMinimumServerVersion("6.4");
Driver.debug("supportsGroupByUnrelated " + supportsGroupByBeyondSelect); Driver.debug("supportsGroupByUnrelated " + supportsGroupByBeyondSelect);
return supportsGroupByBeyondSelect; return supportsGroupByBeyondSelect;
} }
/** /*
* Is the escape character in "LIKE" clauses supported? A * Is the escape character in "LIKE" clauses supported? A
* JDBC compliant driver always returns true. * JDBC compliant driver always returns true.
* *
...@@ -653,12 +652,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -653,12 +652,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsLikeEscapeClause() throws SQLException public boolean supportsLikeEscapeClause() throws SQLException
{ {
boolean supportsLikeEscapeClause = connection.haveMinimumServerVersion("7.1"); boolean supportsLikeEscapeClause = connection.haveMinimumServerVersion("7.1");
Driver.debug("supportsLikeEscapeClause " + supportsLikeEscapeClause); Driver.debug("supportsLikeEscapeClause " + supportsLikeEscapeClause);
return supportsLikeEscapeClause; return supportsLikeEscapeClause;
} }
/** /*
* Are multiple ResultSets from a single execute supported? * Are multiple ResultSets from a single execute supported?
* Well, I implemented it, but I dont think this is possible from * Well, I implemented it, but I dont think this is possible from
* the back ends point of view. * the back ends point of view.
...@@ -668,11 +667,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -668,11 +667,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsMultipleResultSets() throws SQLException public boolean supportsMultipleResultSets() throws SQLException
{ {
Driver.debug("supportsMultipleResultSets " + false); Driver.debug("supportsMultipleResultSets " + false);
return false; return false;
} }
/** /*
* Can we have multiple transactions open at once (on different * Can we have multiple transactions open at once (on different
* connections?) * connections?)
* I guess we can have, since Im relying on it. * I guess we can have, since Im relying on it.
...@@ -682,12 +681,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -682,12 +681,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsMultipleTransactions() throws SQLException public boolean supportsMultipleTransactions() throws SQLException
{ {
Driver.debug("supportsMultipleTransactions " + true); Driver.debug("supportsMultipleTransactions " + true);
return true; return true;
} }
/** /*
* Can columns be defined as non-nullable. A JDBC Compliant driver * Can columns be defined as non-nullable. A JDBC Compliant driver
* always returns true. * always returns true.
* *
* <p>This changed from false to true in v6.2 of the driver, as this * <p>This changed from false to true in v6.2 of the driver, as this
...@@ -698,11 +697,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -698,11 +697,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsNonNullableColumns() throws SQLException public boolean supportsNonNullableColumns() throws SQLException
{ {
Driver.debug("supportsNonNullableColumns true"); Driver.debug("supportsNonNullableColumns true");
return true; return true;
} }
/** /*
* Does this driver support the minimum ODBC SQL grammar. This * Does this driver support the minimum ODBC SQL grammar. This
* grammar is defined at: * grammar is defined at:
* *
...@@ -716,12 +715,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -716,12 +715,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsMinimumSQLGrammar() throws SQLException public boolean supportsMinimumSQLGrammar() throws SQLException
{ {
Driver.debug("supportsMinimumSQLGrammar TRUE"); Driver.debug("supportsMinimumSQLGrammar TRUE");
return true; return true;
} }
/** /*
* Does this driver support the Core ODBC SQL grammar. We need * Does this driver support the Core ODBC SQL grammar. We need
* SQL-92 conformance for this. * SQL-92 conformance for this.
* *
* @return true if so * @return true if so
...@@ -729,11 +728,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -729,11 +728,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsCoreSQLGrammar() throws SQLException public boolean supportsCoreSQLGrammar() throws SQLException
{ {
Driver.debug("supportsCoreSQLGrammar FALSE "); Driver.debug("supportsCoreSQLGrammar FALSE ");
return false; return false;
} }
/** /*
* Does this driver support the Extended (Level 2) ODBC SQL * Does this driver support the Extended (Level 2) ODBC SQL
* grammar. We don't conform to the Core (Level 1), so we can't * grammar. We don't conform to the Core (Level 1), so we can't
* conform to the Extended SQL Grammar. * conform to the Extended SQL Grammar.
...@@ -743,11 +742,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -743,11 +742,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsExtendedSQLGrammar() throws SQLException public boolean supportsExtendedSQLGrammar() throws SQLException
{ {
Driver.debug("supportsExtendedSQLGrammar FALSE"); Driver.debug("supportsExtendedSQLGrammar FALSE");
return false; return false;
} }
/** /*
* Does this driver support the ANSI-92 entry level SQL grammar? * Does this driver support the ANSI-92 entry level SQL grammar?
* All JDBC Compliant drivers must return true. We currently * All JDBC Compliant drivers must return true. We currently
* report false until 'schema' support is added. Then this * report false until 'schema' support is added. Then this
...@@ -761,11 +760,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -761,11 +760,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsANSI92EntryLevelSQL() throws SQLException public boolean supportsANSI92EntryLevelSQL() throws SQLException
{ {
Driver.debug("supportsANSI92EntryLevelSQL false "); Driver.debug("supportsANSI92EntryLevelSQL false ");
return false; return false;
} }
/** /*
* Does this driver support the ANSI-92 intermediate level SQL * Does this driver support the ANSI-92 intermediate level SQL
* grammar? * grammar?
* *
...@@ -774,11 +773,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -774,11 +773,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsANSI92IntermediateSQL() throws SQLException public boolean supportsANSI92IntermediateSQL() throws SQLException
{ {
Driver.debug("supportsANSI92IntermediateSQL false "); Driver.debug("supportsANSI92IntermediateSQL false ");
return false; return false;
} }
/** /*
* Does this driver support the ANSI-92 full SQL grammar? * Does this driver support the ANSI-92 full SQL grammar?
* *
* @return true if so * @return true if so
...@@ -786,11 +785,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -786,11 +785,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsANSI92FullSQL() throws SQLException public boolean supportsANSI92FullSQL() throws SQLException
{ {
Driver.debug("supportsANSI92FullSQL false "); Driver.debug("supportsANSI92FullSQL false ");
return false; return false;
} }
/** /*
* Is the SQL Integrity Enhancement Facility supported? * Is the SQL Integrity Enhancement Facility supported?
* I haven't seen this mentioned anywhere, so I guess not * I haven't seen this mentioned anywhere, so I guess not
* *
...@@ -799,11 +798,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -799,11 +798,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsIntegrityEnhancementFacility() throws SQLException public boolean supportsIntegrityEnhancementFacility() throws SQLException
{ {
Driver.debug("supportsIntegrityEnhancementFacility false "); Driver.debug("supportsIntegrityEnhancementFacility false ");
return false; return false;
} }
/** /*
* Is some form of outer join supported? * Is some form of outer join supported?
* *
* @return true if so * @return true if so
...@@ -811,12 +810,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -811,12 +810,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsOuterJoins() throws SQLException public boolean supportsOuterJoins() throws SQLException
{ {
boolean supportsOuterJoins = connection.haveMinimumServerVersion("7.1"); boolean supportsOuterJoins = connection.haveMinimumServerVersion("7.1");
Driver.debug("supportsOuterJoins " + supportsOuterJoins); Driver.debug("supportsOuterJoins " + supportsOuterJoins);
return supportsOuterJoins; return supportsOuterJoins;
} }
/** /*
* Are full nexted outer joins supported? * Are full nexted outer joins supported?
* *
* @return true if so * @return true if so
...@@ -824,12 +823,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -824,12 +823,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsFullOuterJoins() throws SQLException public boolean supportsFullOuterJoins() throws SQLException
{ {
boolean supportsFullOuterJoins = connection.haveMinimumServerVersion("7.1"); boolean supportsFullOuterJoins = connection.haveMinimumServerVersion("7.1");
Driver.debug("supportsFullOuterJoins " + supportsFullOuterJoins); Driver.debug("supportsFullOuterJoins " + supportsFullOuterJoins);
return supportsFullOuterJoins; return supportsFullOuterJoins;
} }
/** /*
* Is there limited support for outer joins? * Is there limited support for outer joins?
* *
* @return true if so * @return true if so
...@@ -837,12 +836,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -837,12 +836,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsLimitedOuterJoins() throws SQLException public boolean supportsLimitedOuterJoins() throws SQLException
{ {
boolean supportsLimitedOuterJoins = connection.haveMinimumServerVersion("7.1"); boolean supportsLimitedOuterJoins = connection.haveMinimumServerVersion("7.1");
Driver.debug("supportsFullOuterJoins " + supportsLimitedOuterJoins); Driver.debug("supportsFullOuterJoins " + supportsLimitedOuterJoins);
return supportsLimitedOuterJoins; return supportsLimitedOuterJoins;
} }
/** /*
* What is the database vendor's preferred term for "schema"? * What is the database vendor's preferred term for "schema"?
* PostgreSQL doesn't have schemas, but when it does, we'll use the * PostgreSQL doesn't have schemas, but when it does, we'll use the
* term "schema". * term "schema".
...@@ -852,11 +851,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -852,11 +851,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getSchemaTerm() throws SQLException public String getSchemaTerm() throws SQLException
{ {
Driver.debug("getSchemaTerm schema"); Driver.debug("getSchemaTerm schema");
return "schema"; return "schema";
} }
/** /*
* What is the database vendor's preferred term for "procedure"? * What is the database vendor's preferred term for "procedure"?
* Traditionally, "function" has been used. * Traditionally, "function" has been used.
* *
...@@ -865,11 +864,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -865,11 +864,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getProcedureTerm() throws SQLException public String getProcedureTerm() throws SQLException
{ {
Driver.debug("getProcedureTerm function "); Driver.debug("getProcedureTerm function ");
return "function"; return "function";
} }
/** /*
* What is the database vendor's preferred term for "catalog"? * What is the database vendor's preferred term for "catalog"?
* *
* @return the vendor term * @return the vendor term
...@@ -877,11 +876,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -877,11 +876,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getCatalogTerm() throws SQLException public String getCatalogTerm() throws SQLException
{ {
Driver.debug("getCatalogTerm database "); Driver.debug("getCatalogTerm database ");
return "database"; return "database";
} }
/** /*
* Does a catalog appear at the start of a qualified table name? * Does a catalog appear at the start of a qualified table name?
* (Otherwise it appears at the end). * (Otherwise it appears at the end).
* *
...@@ -890,13 +889,13 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -890,13 +889,13 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean isCatalogAtStart() throws SQLException public boolean isCatalogAtStart() throws SQLException
{ {
// return true here; we return false for every other catalog function // return true here; we return false for every other catalog function
// so it won't matter what we return here D.C. // so it won't matter what we return here D.C.
Driver.debug("isCatalogAtStart not implemented"); Driver.debug("isCatalogAtStart not implemented");
return true; return true;
} }
/** /*
* What is the Catalog separator. * What is the Catalog separator.
* *
* @return the catalog separator string * @return the catalog separator string
...@@ -904,25 +903,25 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -904,25 +903,25 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public String getCatalogSeparator() throws SQLException public String getCatalogSeparator() throws SQLException
{ {
// Give them something to work with here // Give them something to work with here
// everything else returns false so it won't matter what we return here D.C. // everything else returns false so it won't matter what we return here D.C.
Driver.debug("getCatalogSeparator not implemented "); Driver.debug("getCatalogSeparator not implemented ");
return "."; return ".";
} }
/** /*
* Can a schema name be used in a data manipulation statement? Nope. * Can a schema name be used in a data manipulation statement? Nope.
* *
* @return true if so * @return true if so
* @exception SQLException if a database access error occurs * @exception SQLException if a database access error occurs
*/ */
public boolean supportsSchemasInDataManipulation() throws SQLException public boolean supportsSchemasInDataManipulation() throws SQLException
{ {
Driver.debug("supportsSchemasInDataManipulation false"); Driver.debug("supportsSchemasInDataManipulation false");
return false; return false;
} }
/** /*
* Can a schema name be used in a procedure call statement? Nope. * Can a schema name be used in a procedure call statement? Nope.
* *
* @return true if so * @return true if so
...@@ -930,11 +929,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -930,11 +929,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsSchemasInProcedureCalls() throws SQLException public boolean supportsSchemasInProcedureCalls() throws SQLException
{ {
Driver.debug("supportsSchemasInProcedureCalls false"); Driver.debug("supportsSchemasInProcedureCalls false");
return false; return false;
} }
/** /*
* Can a schema be used in a table definition statement? Nope. * Can a schema be used in a table definition statement? Nope.
* *
* @return true if so * @return true if so
...@@ -942,11 +941,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -942,11 +941,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsSchemasInTableDefinitions() throws SQLException public boolean supportsSchemasInTableDefinitions() throws SQLException
{ {
Driver.debug("supportsSchemasInTableDefinitions false"); Driver.debug("supportsSchemasInTableDefinitions false");
return false; return false;
} }
/** /*
* Can a schema name be used in an index definition statement? * Can a schema name be used in an index definition statement?
* *
* @return true if so * @return true if so
...@@ -954,11 +953,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -954,11 +953,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsSchemasInIndexDefinitions() throws SQLException public boolean supportsSchemasInIndexDefinitions() throws SQLException
{ {
Driver.debug("supportsSchemasInIndexDefinitions false"); Driver.debug("supportsSchemasInIndexDefinitions false");
return false; return false;
} }
/** /*
* Can a schema name be used in a privilege definition statement? * Can a schema name be used in a privilege definition statement?
* *
* @return true if so * @return true if so
...@@ -966,11 +965,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -966,11 +965,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException
{ {
Driver.debug("supportsSchemasInPrivilegeDefinitions false"); Driver.debug("supportsSchemasInPrivilegeDefinitions false");
return false; return false;
} }
/** /*
* Can a catalog name be used in a data manipulation statement? * Can a catalog name be used in a data manipulation statement?
* *
* @return true if so * @return true if so
...@@ -978,11 +977,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -978,11 +977,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsCatalogsInDataManipulation() throws SQLException public boolean supportsCatalogsInDataManipulation() throws SQLException
{ {
Driver.debug("supportsCatalogsInDataManipulation false"); Driver.debug("supportsCatalogsInDataManipulation false");
return false; return false;
} }
/** /*
* Can a catalog name be used in a procedure call statement? * Can a catalog name be used in a procedure call statement?
* *
* @return true if so * @return true if so
...@@ -990,11 +989,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -990,11 +989,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsCatalogsInProcedureCalls() throws SQLException public boolean supportsCatalogsInProcedureCalls() throws SQLException
{ {
Driver.debug("supportsCatalogsInDataManipulation false"); Driver.debug("supportsCatalogsInDataManipulation false");
return false; return false;
} }
/** /*
* Can a catalog name be used in a table definition statement? * Can a catalog name be used in a table definition statement?
* *
* @return true if so * @return true if so
...@@ -1002,11 +1001,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1002,11 +1001,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsCatalogsInTableDefinitions() throws SQLException public boolean supportsCatalogsInTableDefinitions() throws SQLException
{ {
Driver.debug("supportsCatalogsInTableDefinitions false"); Driver.debug("supportsCatalogsInTableDefinitions false");
return false; return false;
} }
/** /*
* Can a catalog name be used in an index definition? * Can a catalog name be used in an index definition?
* *
* @return true if so * @return true if so
...@@ -1014,11 +1013,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1014,11 +1013,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsCatalogsInIndexDefinitions() throws SQLException public boolean supportsCatalogsInIndexDefinitions() throws SQLException
{ {
Driver.debug("supportsCatalogsInIndexDefinitions false"); Driver.debug("supportsCatalogsInIndexDefinitions false");
return false; return false;
} }
/** /*
* Can a catalog name be used in a privilege definition statement? * Can a catalog name be used in a privilege definition statement?
* *
* @return true if so * @return true if so
...@@ -1026,11 +1025,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1026,11 +1025,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException
{ {
Driver.debug("supportsCatalogsInPrivilegeDefinitions false"); Driver.debug("supportsCatalogsInPrivilegeDefinitions false");
return false; return false;
} }
/** /*
* We support cursors for gets only it seems. I dont see a method * We support cursors for gets only it seems. I dont see a method
* to get a positioned delete. * to get a positioned delete.
* *
...@@ -1039,11 +1038,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1039,11 +1038,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsPositionedDelete() throws SQLException public boolean supportsPositionedDelete() throws SQLException
{ {
Driver.debug("supportsPositionedDelete false"); Driver.debug("supportsPositionedDelete false");
return false; // For now... return false; // For now...
} }
/** /*
* Is positioned UPDATE supported? * Is positioned UPDATE supported?
* *
* @return true if so * @return true if so
...@@ -1051,11 +1050,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1051,11 +1050,11 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public boolean supportsPositionedUpdate() throws SQLException public boolean supportsPositionedUpdate() throws SQLException
{ {
Driver.debug("supportsPositionedUpdate false"); Driver.debug("supportsPositionedUpdate false");
return false; // For now... return false; // For now...
} }
/** /*
* Is SELECT for UPDATE supported? * Is SELECT for UPDATE supported?
* *
* @return true if so; false otherwise * @return true if so; false otherwise
...@@ -1066,7 +1065,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1066,7 +1065,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.haveMinimumServerVersion("6.5"); return connection.haveMinimumServerVersion("6.5");
} }
/** /*
* Are stored procedure calls using the stored procedure escape * Are stored procedure calls using the stored procedure escape
* syntax supported? * syntax supported?
* *
...@@ -1078,7 +1077,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1078,7 +1077,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Are subqueries in comparison expressions supported? A JDBC * Are subqueries in comparison expressions supported? A JDBC
* Compliant driver always returns true. * Compliant driver always returns true.
* *
...@@ -1090,7 +1089,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1090,7 +1089,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Are subqueries in 'exists' expressions supported? A JDBC * Are subqueries in 'exists' expressions supported? A JDBC
* Compliant driver always returns true. * Compliant driver always returns true.
* *
...@@ -1102,7 +1101,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1102,7 +1101,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Are subqueries in 'in' statements supported? A JDBC * Are subqueries in 'in' statements supported? A JDBC
* Compliant driver always returns true. * Compliant driver always returns true.
* *
...@@ -1114,7 +1113,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1114,7 +1113,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Are subqueries in quantified expressions supported? A JDBC * Are subqueries in quantified expressions supported? A JDBC
* Compliant driver always returns true. * Compliant driver always returns true.
* *
...@@ -1129,7 +1128,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1129,7 +1128,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Are correlated subqueries supported? A JDBC Compliant driver * Are correlated subqueries supported? A JDBC Compliant driver
* always returns true. * always returns true.
* *
...@@ -1143,7 +1142,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1143,7 +1142,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.haveMinimumServerVersion("7.1"); return connection.haveMinimumServerVersion("7.1");
} }
/** /*
* Is SQL UNION supported? * Is SQL UNION supported?
* *
* @return true if so * @return true if so
...@@ -1154,7 +1153,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1154,7 +1153,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; // since 6.3 return true; // since 6.3
} }
/** /*
* Is SQL UNION ALL supported? * Is SQL UNION ALL supported?
* *
* @return true if so * @return true if so
...@@ -1165,7 +1164,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1165,7 +1164,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.haveMinimumServerVersion("7.1"); return connection.haveMinimumServerVersion("7.1");
} }
/** /*
* In PostgreSQL, Cursors are only open within transactions. * In PostgreSQL, Cursors are only open within transactions.
* *
* @return true if so * @return true if so
...@@ -1176,7 +1175,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1176,7 +1175,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Do we support open cursors across multiple transactions? * Do we support open cursors across multiple transactions?
* *
* @return true if so * @return true if so
...@@ -1187,7 +1186,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1187,7 +1186,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Can statements remain open across commits? They may, but * Can statements remain open across commits? They may, but
* this driver cannot guarentee that. In further reflection. * this driver cannot guarentee that. In further reflection.
* we are talking a Statement object here, so the answer is * we are talking a Statement object here, so the answer is
...@@ -1201,7 +1200,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1201,7 +1200,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Can statements remain open across rollbacks? They may, but * Can statements remain open across rollbacks? They may, but
* this driver cannot guarentee that. In further contemplation, * this driver cannot guarentee that. In further contemplation,
* we are talking a Statement object here, so the answer is yes, * we are talking a Statement object here, so the answer is yes,
...@@ -1215,7 +1214,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1215,7 +1214,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* How many hex characters can you have in an inline binary literal * How many hex characters can you have in an inline binary literal
* *
* @return the max literal length * @return the max literal length
...@@ -1226,7 +1225,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1226,7 +1225,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; // no limit return 0; // no limit
} }
/** /*
* What is the maximum length for a character literal * What is the maximum length for a character literal
* I suppose it is 8190 (8192 - 2 for the quotes) * I suppose it is 8190 (8192 - 2 for the quotes)
* *
...@@ -1238,7 +1237,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1238,7 +1237,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; // no limit return 0; // no limit
} }
/** /*
* Whats the limit on column name length. The description of * Whats the limit on column name length. The description of
* pg_class would say '32' (length of pg_class.relname) - we * pg_class would say '32' (length of pg_class.relname) - we
* should probably do a query for this....but.... * should probably do a query for this....but....
...@@ -1251,7 +1250,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1251,7 +1250,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 32; return 32;
} }
/** /*
* What is the maximum number of columns in a "GROUP BY" clause? * What is the maximum number of columns in a "GROUP BY" clause?
* *
* @return the max number of columns * @return the max number of columns
...@@ -1262,7 +1261,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1262,7 +1261,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; // no limit return 0; // no limit
} }
/** /*
* What's the maximum number of columns allowed in an index? * What's the maximum number of columns allowed in an index?
* 6.0 only allowed one column, but 6.1 introduced multi-column * 6.0 only allowed one column, but 6.1 introduced multi-column
* indices, so, theoretically, its all of them. * indices, so, theoretically, its all of them.
...@@ -1275,7 +1274,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1275,7 +1274,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return getMaxColumnsInTable(); return getMaxColumnsInTable();
} }
/** /*
* What's the maximum number of columns in an "ORDER BY clause? * What's the maximum number of columns in an "ORDER BY clause?
* *
* @return the max columns * @return the max columns
...@@ -1286,7 +1285,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1286,7 +1285,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; // no limit return 0; // no limit
} }
/** /*
* What is the maximum number of columns in a "SELECT" list? * What is the maximum number of columns in a "SELECT" list?
* *
* @return the max columns * @return the max columns
...@@ -1297,7 +1296,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1297,7 +1296,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; // no limit return 0; // no limit
} }
/** /*
* What is the maximum number of columns in a table? From the * What is the maximum number of columns in a table? From the
* CREATE TABLE reference page... * CREATE TABLE reference page...
* *
...@@ -1314,7 +1313,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1314,7 +1313,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 1600; return 1600;
} }
/** /*
* How many active connection can we have at a time to this * How many active connection can we have at a time to this
* database? Well, since it depends on postmaster, which just * database? Well, since it depends on postmaster, which just
* does a listen() followed by an accept() and fork(), its * does a listen() followed by an accept() and fork(), its
...@@ -1331,7 +1330,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1331,7 +1330,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 8192; return 8192;
} }
/** /*
* What is the maximum cursor name length (the same as all * What is the maximum cursor name length (the same as all
* the other F***** identifiers!) * the other F***** identifiers!)
* *
...@@ -1343,7 +1342,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1343,7 +1342,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 32; return 32;
} }
/** /*
* Retrieves the maximum number of bytes for an index, including all * Retrieves the maximum number of bytes for an index, including all
* of the parts of the index. * of the parts of the index.
* *
...@@ -1363,7 +1362,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1363,7 +1362,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; return 0;
} }
/** /*
* What is the maximum length of a procedure name? * What is the maximum length of a procedure name?
* (length of pg_proc.proname used) - again, I really * (length of pg_proc.proname used) - again, I really
* should do a query here to get it. * should do a query here to get it.
...@@ -1382,7 +1381,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1382,7 +1381,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; return 0;
} }
/** /*
* What is the maximum length of a single row? * What is the maximum length of a single row?
* *
* @return max row size in bytes * @return max row size in bytes
...@@ -1396,7 +1395,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1396,7 +1395,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 8192; // XXX could be altered return 8192; // XXX could be altered
} }
/** /*
* Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY * Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY
* blobs? We don't handle blobs yet * blobs? We don't handle blobs yet
* *
...@@ -1408,7 +1407,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1408,7 +1407,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* What is the maximum length of a SQL statement? * What is the maximum length of a SQL statement?
* *
* @return max length in bytes * @return max length in bytes
...@@ -1422,7 +1421,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1422,7 +1421,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 16384; return 16384;
} }
/** /*
* How many active statements can we have open at one time to * How many active statements can we have open at one time to
* this database? Basically, since each Statement downloads * this database? Basically, since each Statement downloads
* the results as the query is executed, we can have many. However, * the results as the query is executed, we can have many. However,
...@@ -1438,7 +1437,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1438,7 +1437,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 1; return 1;
} }
/** /*
* What is the maximum length of a table name? This was found * What is the maximum length of a table name? This was found
* from pg_class.relname length * from pg_class.relname length
* *
...@@ -1450,7 +1449,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1450,7 +1449,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 32; return 32;
} }
/** /*
* What is the maximum number of tables that can be specified * What is the maximum number of tables that can be specified
* in a SELECT? * in a SELECT?
* *
...@@ -1462,7 +1461,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1462,7 +1461,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return 0; // no limit return 0; // no limit
} }
/** /*
* What is the maximum length of a user name? Well, we generally * What is the maximum length of a user name? Well, we generally
* use UNIX like user names in PostgreSQL, so I think this would * use UNIX like user names in PostgreSQL, so I think this would
* be 8. However, showing the schema for pg_user shows a length * be 8. However, showing the schema for pg_user shows a length
...@@ -1477,7 +1476,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1477,7 +1476,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
} }
/** /*
* What is the database's default transaction isolation level? We * What is the database's default transaction isolation level? We
* do not support this, so all transactions are SERIALIZABLE. * do not support this, so all transactions are SERIALIZABLE.
* *
...@@ -1490,7 +1489,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1490,7 +1489,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return Connection.TRANSACTION_READ_COMMITTED; return Connection.TRANSACTION_READ_COMMITTED;
} }
/** /*
* Are transactions supported? If not, commit and rollback are noops * Are transactions supported? If not, commit and rollback are noops
* and the isolation level is TRANSACTION_NONE. We do support * and the isolation level is TRANSACTION_NONE. We do support
* transactions. * transactions.
...@@ -1503,7 +1502,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1503,7 +1502,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Does the database support the given transaction isolation level? * Does the database support the given transaction isolation level?
* We only support TRANSACTION_SERIALIZABLE and TRANSACTION_READ_COMMITTED * We only support TRANSACTION_SERIALIZABLE and TRANSACTION_READ_COMMITTED
* *
...@@ -1521,7 +1520,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1521,7 +1520,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Are both data definition and data manipulation transactions * Are both data definition and data manipulation transactions
* supported? * supported?
* *
...@@ -1533,7 +1532,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1533,7 +1532,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Are only data manipulation statements withing a transaction * Are only data manipulation statements withing a transaction
* supported? * supported?
* *
...@@ -1545,7 +1544,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1545,7 +1544,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Does a data definition statement within a transaction force * Does a data definition statement within a transaction force
* the transaction to commit? I think this means something like: * the transaction to commit? I think this means something like:
* *
...@@ -1569,7 +1568,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1569,7 +1568,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Is a data definition statement within a transaction ignored? * Is a data definition statement within a transaction ignored?
* It seems to be (from experiment in previous method) * It seems to be (from experiment in previous method)
* *
...@@ -1581,7 +1580,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1581,7 +1580,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Get a description of stored procedures available in a catalog * Get a description of stored procedures available in a catalog
* *
* <p>Only procedure descriptions matching the schema and procedure * <p>Only procedure descriptions matching the schema and procedure
...@@ -1653,7 +1652,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1653,7 +1652,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get a description of a catalog's stored procedure parameters * Get a description of a catalog's stored procedure parameters
* and result columns. * and result columns.
* *
...@@ -1731,7 +1730,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1731,7 +1730,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get a description of tables available in a catalog. * Get a description of tables available in a catalog.
* *
* <p>Only table descriptions matching the catalog, schema, table * <p>Only table descriptions matching the catalog, schema, table
...@@ -1881,7 +1880,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1881,7 +1880,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
"TABLE", "VIEW", "INDEX", "SEQUENCE" "TABLE", "VIEW", "INDEX", "SEQUENCE"
}; };
/** /*
* Get the schema names available in this database. The results * Get the schema names available in this database. The results
* are ordered by schema name. * are ordered by schema name.
* *
...@@ -1906,7 +1905,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1906,7 +1905,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get the catalog names available in this database. The results * Get the catalog names available in this database. The results
* are ordered by catalog name. * are ordered by catalog name.
* *
...@@ -1923,7 +1922,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1923,7 +1922,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return connection.createStatement().executeQuery("select datname as TABLE_CAT from pg_database;"); return connection.createStatement().executeQuery("select datname as TABLE_CAT from pg_database;");
} }
/** /*
* Get the table types available in this database. The results * Get the table types available in this database. The results
* are ordered by table type. * are ordered by table type.
* *
...@@ -1951,7 +1950,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -1951,7 +1950,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get a description of table columns available in a catalog. * Get a description of table columns available in a catalog.
* *
* <P>Only column descriptions matching the catalog, schema, table * <P>Only column descriptions matching the catalog, schema, table
...@@ -2143,7 +2142,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2143,7 +2142,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get a description of the access rights for a table's columns. * Get a description of the access rights for a table's columns.
* *
* <P>Only privileges matching the column name criteria are * <P>Only privileges matching the column name criteria are
...@@ -2207,7 +2206,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2207,7 +2206,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get a description of the access rights for each table available * Get a description of the access rights for each table available
* in a catalog. * in a catalog.
* *
...@@ -2240,36 +2239,36 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2240,36 +2239,36 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/ */
public java.sql.ResultSet getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern) throws SQLException public java.sql.ResultSet getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern) throws SQLException
{ {
Field f[] = new Field[8]; Field f[] = new Field[8];
Vector v = new Vector(); Vector v = new Vector();
if(tableNamePattern == null)
tableNamePattern = "%";
f[0] = new Field(connection,"TABLE_CAT",iVarcharOid,32); if (tableNamePattern == null)
f[1] = new Field(connection,"TABLE_SCHEM",iVarcharOid,32); tableNamePattern = "%";
f[2] = new Field(connection,"TABLE_NAME",iVarcharOid,32);
f[3] = new Field(connection,"COLUMN_NAME",iVarcharOid,32);
f[4] = new Field(connection,"GRANTOR",iVarcharOid,32);
f[5] = new Field(connection,"GRANTEE",iVarcharOid,32);
f[6] = new Field(connection,"PRIVILEGE",iVarcharOid,32);
f[7] = new Field(connection,"IS_GRANTABLE",iVarcharOid,32);
// This is taken direct from the psql source f[0] = new Field(connection,"TABLE_CAT",iVarcharOid,32);
java.sql.ResultSet r = connection.ExecSQL("SELECT relname, relacl FROM pg_class, pg_user WHERE ( relkind = 'r' OR relkind = 'i') and relname !~ '^pg_' and relname !~ '^xin[vx][0-9]+' and usesysid = relowner and relname like '"+tableNamePattern.toLowerCase()+"' ORDER BY relname"); f[1] = new Field(connection,"TABLE_SCHEM",iVarcharOid,32);
while(r.next()) { f[2] = new Field(connection,"TABLE_NAME",iVarcharOid,32);
byte[][] tuple = new byte[8][0]; f[3] = new Field(connection,"COLUMN_NAME",iVarcharOid,32);
tuple[0] = tuple[1]= "".getBytes(); f[4] = new Field(connection,"GRANTOR",iVarcharOid,32);
DriverManager.println("relname=\""+r.getString(1)+"\" relacl=\""+r.getString(2)+"\""); f[5] = new Field(connection,"GRANTEE",iVarcharOid,32);
f[6] = new Field(connection,"PRIVILEGE",iVarcharOid,32);
f[7] = new Field(connection,"IS_GRANTABLE",iVarcharOid,32);
// For now, don't add to the result as relacl needs to be processed. // This is taken direct from the psql source
//v.addElement(tuple); java.sql.ResultSet r = connection.ExecSQL("SELECT relname, relacl FROM pg_class, pg_user WHERE ( relkind = 'r' OR relkind = 'i') and relname !~ '^pg_' and relname !~ '^xin[vx][0-9]+' and usesysid = relowner and relname like '"+tableNamePattern.toLowerCase()+"' ORDER BY relname");
} while (r.next()) {
byte[][] tuple = new byte[8][0];
tuple[0] = tuple[1]= "".getBytes();
DriverManager.println("relname=\""+r.getString(1)+"\" relacl=\""+r.getString(2)+"\"");
// For now, don't add to the result as relacl needs to be processed.
//v.addElement(tuple);
}
return new ResultSet(connection,f,v,"OK",1); return new ResultSet(connection,f,v,"OK",1);
} }
/** /*
* Get a description of a table's optimal set of columns that * Get a description of a table's optimal set of columns that
* uniquely identifies a row. They are ordered by SCOPE. * uniquely identifies a row. They are ordered by SCOPE.
* *
...@@ -2325,7 +2324,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2325,7 +2324,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return new ResultSet(connection, f, v, "OK", 1); return new ResultSet(connection, f, v, "OK", 1);
} }
/** /*
* Get a description of a table's columns that are automatically * Get a description of a table's columns that are automatically
* updated when any value in a row is updated. They are * updated when any value in a row is updated. They are
* unordered. * unordered.
...@@ -2360,7 +2359,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2360,7 +2359,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
throw org.postgresql.Driver.notImplemented(); throw org.postgresql.Driver.notImplemented();
} }
/** /*
* Get a description of a table's primary key columns. They * Get a description of a table's primary key columns. They
* are ordered by COLUMN_NAME. * are ordered by COLUMN_NAME.
* *
...@@ -2400,69 +2399,69 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2400,69 +2399,69 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
); );
} }
private java.sql.ResultSet getImportedExportedKeys(String catalog, String schema, String primaryTable, String foreignTable) throws SQLException private java.sql.ResultSet getImportedExportedKeys(String catalog, String schema, String primaryTable, String foreignTable) throws SQLException
{ {
Field f[]=new Field[14]; Field f[]=new Field[14];
f[0]=new Field(connection, "PKTABLE_CAT", iVarcharOid, 32); f[0]=new Field(connection, "PKTABLE_CAT", iVarcharOid, 32);
f[1]=new Field(connection, "PKTABLE_SCHEM", iVarcharOid, 32); f[1]=new Field(connection, "PKTABLE_SCHEM", iVarcharOid, 32);
f[2]=new Field(connection, "PKTABLE_NAME", iVarcharOid, 32); f[2]=new Field(connection, "PKTABLE_NAME", iVarcharOid, 32);
f[3]=new Field(connection, "PKCOLUMN_NAME", iVarcharOid, 32); f[3]=new Field(connection, "PKCOLUMN_NAME", iVarcharOid, 32);
f[4]=new Field(connection, "FKTABLE_CAT", iVarcharOid, 32); f[4]=new Field(connection, "FKTABLE_CAT", iVarcharOid, 32);
f[5]=new Field(connection, "FKTABLE_SCHEM", iVarcharOid, 32); f[5]=new Field(connection, "FKTABLE_SCHEM", iVarcharOid, 32);
f[6]=new Field(connection, "FKTABLE_NAME", iVarcharOid, 32); f[6]=new Field(connection, "FKTABLE_NAME", iVarcharOid, 32);
f[7]=new Field(connection, "FKCOLUMN_NAME", iVarcharOid, 32); f[7]=new Field(connection, "FKCOLUMN_NAME", iVarcharOid, 32);
f[8]=new Field(connection, "KEY_SEQ", iInt2Oid, 2); f[8]=new Field(connection, "KEY_SEQ", iInt2Oid, 2);
f[9]=new Field(connection, "UPDATE_RULE", iInt2Oid, 2); f[9]=new Field(connection, "UPDATE_RULE", iInt2Oid, 2);
f[10]=new Field(connection, "DELETE_RULE", iInt2Oid, 2); f[10]=new Field(connection, "DELETE_RULE", iInt2Oid, 2);
f[11]=new Field(connection, "FK_NAME", iVarcharOid, 32); f[11]=new Field(connection, "FK_NAME", iVarcharOid, 32);
f[12]=new Field(connection, "PK_NAME", iVarcharOid, 32); f[12]=new Field(connection, "PK_NAME", iVarcharOid, 32);
f[13]=new Field(connection, "DEFERRABILITY", iInt2Oid, 2); f[13]=new Field(connection, "DEFERRABILITY", iInt2Oid, 2);
java.sql.ResultSet rs = connection.ExecSQL("SELECT c.relname,c2.relname," java.sql.ResultSet rs = connection.ExecSQL("SELECT c.relname,c2.relname,"
+ "t.tgconstrname,ic.relname," + "t.tgconstrname,ic.relname,"
+ "t.tgdeferrable,t.tginitdeferred," + "t.tgdeferrable,t.tginitdeferred,"
+ "t.tgnargs,t.tgargs,p.proname " + "t.tgnargs,t.tgargs,p.proname "
+ "FROM pg_trigger t,pg_class c,pg_class c2," + "FROM pg_trigger t,pg_class c,pg_class c2,"
+ "pg_class ic,pg_proc p, pg_index i " + "pg_class ic,pg_proc p, pg_index i "
+ "WHERE t.tgrelid=c.oid AND t.tgconstrrelid=c2.oid " + "WHERE t.tgrelid=c.oid AND t.tgconstrrelid=c2.oid "
+ "AND t.tgfoid=p.oid AND tgisconstraint " + "AND t.tgfoid=p.oid AND tgisconstraint "
+ ((primaryTable!=null) ? "AND c2.relname='"+primaryTable+"' " : "") + ((primaryTable!=null) ? "AND c2.relname='"+primaryTable+"' " : "")
+ ((foreignTable!=null) ? "AND c.relname='"+foreignTable+"' " : "") + ((foreignTable!=null) ? "AND c.relname='"+foreignTable+"' " : "")
+ "AND i.indrelid=c.oid " + "AND i.indrelid=c.oid "
+ "AND i.indexrelid=ic.oid AND i.indisprimary " + "AND i.indexrelid=ic.oid AND i.indisprimary "
+ "ORDER BY c.relname,c2.relname" + "ORDER BY c.relname,c2.relname"
); );
Vector tuples = new Vector(); Vector tuples = new Vector();
short seq=0; short seq=0;
if(rs.next()) { if (rs.next()) {
boolean hasMore; boolean hasMore;
do { do {
byte tuple[][]=new byte[14][0]; byte tuple[][]=new byte[14][0];
for (int k = 0;k < 14;k++) for (int k = 0;k < 14;k++)
tuple[k] = null; tuple[k] = null;
String fKeyName=rs.getString(3); String fKeyName=rs.getString(3);
boolean foundRule=false; boolean foundRule=false;
do { do {
String proname=rs.getString(9); String proname=rs.getString(9);
if(proname!=null && proname.startsWith("RI_FKey_")) { if (proname!=null && proname.startsWith("RI_FKey_")) {
int col=-1; int col=-1;
if(proname.endsWith("_upd")) col=9; // UPDATE_RULE if (proname.endsWith("_upd")) col=9; // UPDATE_RULE
else if(proname.endsWith("_del")) col=10; // DELETE_RULE else if (proname.endsWith("_del")) col=10; // DELETE_RULE
if(col>-1) { if (col>-1) {
String rule=proname.substring(8, proname.length()-4); String rule=proname.substring(8, proname.length()-4);
int action=importedKeyNoAction; int action=importedKeyNoAction;
if("cascade".equals(rule)) action=importedKeyCascade; if ("cascade".equals(rule)) action=importedKeyCascade;
else if("setnull".equals(rule)) action=importedKeySetNull; else if ("setnull".equals(rule)) action=importedKeySetNull;
else if("setdefault".equals(rule)) action=importedKeySetDefault; else if ("setdefault".equals(rule)) action=importedKeySetDefault;
tuple[col]=Integer.toString(action).getBytes(); tuple[col]=Integer.toString(action).getBytes();
foundRule=true; foundRule=true;
} }
} }
} while((hasMore=rs.next()) && fKeyName.equals(rs.getString(3))); } while ((hasMore=rs.next()) && fKeyName.equals(rs.getString(3)));
if(foundRule) { if (foundRule) {
tuple[2]=rs.getBytes(2); //PKTABLE_NAME tuple[2]=rs.getBytes(2); //PKTABLE_NAME
tuple[6]=rs.getBytes(1); //FKTABLE_NAME tuple[6]=rs.getBytes(1); //FKTABLE_NAME
...@@ -2473,18 +2472,18 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2473,18 +2472,18 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
String s=rs.getString(8); String s=rs.getString(8);
int pos=s.lastIndexOf("\\000"); int pos=s.lastIndexOf("\\000");
for(int c=0;c<numColumns;c++) { for(int c=0;c<numColumns;c++) {
if(pos>-1) { if (pos>-1) {
int pos2=s.lastIndexOf("\\000", pos-1); int pos2=s.lastIndexOf("\\000", pos-1);
if(pos2>-1) { if (pos2>-1) {
if(fkeyColumns.length()>0) fkeyColumns.insert(0, ','); if (fkeyColumns.length()>0) fkeyColumns.insert(0, ',');
fkeyColumns.insert(0, s.substring(pos2+4, pos)); //FKCOLUMN_NAME fkeyColumns.insert(0, s.substring(pos2+4, pos)); //FKCOLUMN_NAME
pos=s.lastIndexOf("\\000", pos2-1); pos=s.lastIndexOf("\\000", pos2-1);
if(pos>-1) { if (pos>-1) {
if(pkeyColumns.length()>0) pkeyColumns.insert(0, ','); if (pkeyColumns.length()>0) pkeyColumns.insert(0, ',');
pkeyColumns.insert(0, s.substring(pos+4, pos2)); //PKCOLUMN_NAME pkeyColumns.insert(0, s.substring(pos+4, pos2)); //PKCOLUMN_NAME
} }
}
} }
}
} }
tuple[7]=fkeyColumns.toString().getBytes(); //FKCOLUMN_NAME tuple[7]=fkeyColumns.toString().getBytes(); //FKCOLUMN_NAME
tuple[3]=pkeyColumns.toString().getBytes(); //PKCOLUMN_NAME tuple[3]=pkeyColumns.toString().getBytes(); //PKCOLUMN_NAME
...@@ -2497,23 +2496,23 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2497,23 +2496,23 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
int deferrability=importedKeyNotDeferrable; int deferrability=importedKeyNotDeferrable;
boolean deferrable=rs.getBoolean(5); boolean deferrable=rs.getBoolean(5);
boolean initiallyDeferred=rs.getBoolean(6); boolean initiallyDeferred=rs.getBoolean(6);
if(deferrable) { if (deferrable) {
if(initiallyDeferred) if (initiallyDeferred)
deferrability=importedKeyInitiallyDeferred; deferrability=importedKeyInitiallyDeferred;
else else
deferrability=importedKeyInitiallyImmediate; deferrability=importedKeyInitiallyImmediate;
} }
tuple[13]=Integer.toString(deferrability).getBytes(); tuple[13]=Integer.toString(deferrability).getBytes();
tuples.addElement(tuple); tuples.addElement(tuple);
} }
} while(hasMore); } while (hasMore);
} }
return new ResultSet(connection, f, tuples, "OK", 1); return new ResultSet(connection, f, tuples, "OK", 1);
} }
/** /*
* Get a description of the primary key columns that are * Get a description of the primary key columns that are
* referenced by a table's foreign key columns (the primary keys * referenced by a table's foreign key columns (the primary keys
* imported by a table). They are ordered by PKTABLE_CAT, * imported by a table). They are ordered by PKTABLE_CAT,
...@@ -2567,9 +2566,9 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2567,9 +2566,9 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
public java.sql.ResultSet getImportedKeys(String catalog, String schema, String table) throws SQLException public java.sql.ResultSet getImportedKeys(String catalog, String schema, String table) throws SQLException
{ {
return getImportedExportedKeys(catalog, schema, null, table); return getImportedExportedKeys(catalog, schema, null, table);
} }
/** /*
* Get a description of a foreign key columns that reference a * Get a description of a foreign key columns that reference a
* table's primary key columns (the foreign keys exported by a * table's primary key columns (the foreign keys exported by a
* table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM, * table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM,
...@@ -2627,7 +2626,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2627,7 +2626,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return getImportedExportedKeys(catalog, schema, table, null); return getImportedExportedKeys(catalog, schema, table, null);
} }
/** /*
* Get a description of the foreign key columns in the foreign key * Get a description of the foreign key columns in the foreign key
* table that reference the primary key columns of the primary key * table that reference the primary key columns of the primary key
* table (describe how one table imports another's key.) This * table (describe how one table imports another's key.) This
...@@ -2688,7 +2687,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2688,7 +2687,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return getImportedExportedKeys(primaryCatalog, primarySchema, primaryTable, foreignTable); return getImportedExportedKeys(primaryCatalog, primarySchema, primaryTable, foreignTable);
} }
/** /*
* Get a description of all the standard SQL types supported by * Get a description of all the standard SQL types supported by
* this database. They are ordered by DATA_TYPE and then by how * this database. They are ordered by DATA_TYPE and then by how
* closely the data type maps to the corresponding JDBC SQL type. * closely the data type maps to the corresponding JDBC SQL type.
...@@ -2795,7 +2794,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2795,7 +2794,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
throw new PSQLException("postgresql.metadata.unavailable"); throw new PSQLException("postgresql.metadata.unavailable");
} }
/** /*
* Get a description of a table's indices and statistics. They are * Get a description of a table's indices and statistics. They are
* ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION. * ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION.
* *
...@@ -2903,8 +2902,8 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2903,8 +2902,8 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
tuple[0] = "".getBytes(); tuple[0] = "".getBytes();
tuple[1] = "".getBytes(); tuple[1] = "".getBytes();
tuple[2] = r.getBytes(1); tuple[2] = r.getBytes(1);
tuple[3] = r.getBoolean(2) ? "false".getBytes() : "true".getBytes(); tuple[3] = r.getBoolean(2) ? "false".getBytes() : "true".getBytes();
tuple[4] = null; tuple[4] = null;
tuple[5] = r.getBytes(3); tuple[5] = r.getBytes(3);
tuple[6] = r.getBoolean(4) ? tuple[6] = r.getBoolean(4) ?
Integer.toString(tableIndexClustered).getBytes() : Integer.toString(tableIndexClustered).getBytes() :
...@@ -2913,10 +2912,10 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2913,10 +2912,10 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
Integer.toString(tableIndexOther).getBytes(); Integer.toString(tableIndexOther).getBytes();
tuple[7] = Integer.toString(i + 1).getBytes(); tuple[7] = Integer.toString(i + 1).getBytes();
java.sql.ResultSet columnNameRS = connection.ExecSQL("select a.attname FROM pg_attribute a WHERE (a.attnum = " + columnOrdinals[i] + ") AND (a.attrelid = " + r.getInt(9) + ")"); java.sql.ResultSet columnNameRS = connection.ExecSQL("select a.attname FROM pg_attribute a WHERE (a.attnum = " + columnOrdinals[i] + ") AND (a.attrelid = " + r.getInt(9) + ")");
if(columnNameRS.next()) if (columnNameRS.next())
tuple[8] = columnNameRS.getBytes(1); tuple[8] = columnNameRS.getBytes(1);
else else
tuple[8] = "".getBytes(); tuple[8] = "".getBytes();
tuple[8] = columnNameRS.getBytes(1); tuple[8] = columnNameRS.getBytes(1);
tuple[9] = null; // sort sequence ??? tuple[9] = null; // sort sequence ???
tuple[10] = r.getBytes(7); // inexact tuple[10] = r.getBytes(7); // inexact
...@@ -2932,7 +2931,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2932,7 +2931,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
// ** JDBC 2 Extensions ** // ** JDBC 2 Extensions **
/** /*
* Does the database support the given result set type? * Does the database support the given result set type?
* *
* @param type - defined in java.sql.ResultSet * @param type - defined in java.sql.ResultSet
...@@ -2946,7 +2945,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -2946,7 +2945,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
} }
/** /*
* Does the database support the concurrency type in combination * Does the database support the concurrency type in combination
* with the given result set type? * with the given result set type?
* *
...@@ -3016,7 +3015,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -3016,7 +3015,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return false; return false;
} }
/** /*
* Indicates whether the driver supports batch updates. * Indicates whether the driver supports batch updates.
*/ */
public boolean supportsBatchUpdates() throws SQLException public boolean supportsBatchUpdates() throws SQLException
...@@ -3024,7 +3023,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -3024,7 +3023,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
return true; return true;
} }
/** /*
* Return user defined types in a schema * Return user defined types in a schema
*/ */
public java.sql.ResultSet getUDTs(String catalog, public java.sql.ResultSet getUDTs(String catalog,
...@@ -3037,7 +3036,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData ...@@ -3037,7 +3036,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
} }
/** /*
* Retrieves the connection that produced this metadata object. * Retrieves the connection that produced this metadata object.
* *
* @return the connection that produced this metadata object * @return the connection that produced this metadata object
......
...@@ -3,7 +3,7 @@ package org.postgresql.jdbc2; ...@@ -3,7 +3,7 @@ package org.postgresql.jdbc2;
import org.postgresql.util.*; import org.postgresql.util.*;
import java.sql.*; import java.sql.*;
/** /*
* This class extends java.sql.BatchUpdateException, and provides our * This class extends java.sql.BatchUpdateException, and provides our
* internationalisation handling. * internationalisation handling.
*/ */
......
...@@ -13,7 +13,7 @@ import java.util.*; ...@@ -13,7 +13,7 @@ import java.util.*;
import org.postgresql.largeobject.*; import org.postgresql.largeobject.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* A SQL Statement is pre-compiled and stored in a PreparedStatement object. * A SQL Statement is pre-compiled and stored in a PreparedStatement object.
* This object can then be used to efficiently execute this statement multiple * This object can then be used to efficiently execute this statement multiple
* times. * times.
...@@ -44,7 +44,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -44,7 +44,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
private static ThreadLocal tl_df = new ThreadLocal(); // setDate() SimpleDateFormat private static ThreadLocal tl_df = new ThreadLocal(); // setDate() SimpleDateFormat
private static ThreadLocal tl_tsdf = new ThreadLocal(); // setTimestamp() SimpleDateFormat private static ThreadLocal tl_tsdf = new ThreadLocal(); // setTimestamp() SimpleDateFormat
/** /*
* Constructor for the PreparedStatement class. * Constructor for the PreparedStatement class.
* Split the SQL statement into segments - separated by the arguments. * Split the SQL statement into segments - separated by the arguments.
* When we rebuild the thing with the arguments, we can substitute the * When we rebuild the thing with the arguments, we can substitute the
...@@ -87,7 +87,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -87,7 +87,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
templateStrings[i] = (String)v.elementAt(i); templateStrings[i] = (String)v.elementAt(i);
} }
/** /*
* A Prepared SQL query is executed and its ResultSet is returned * A Prepared SQL query is executed and its ResultSet is returned
* *
* @return a ResultSet that contains the data produced by the * @return a ResultSet that contains the data produced by the
...@@ -99,7 +99,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -99,7 +99,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
return super.executeQuery(compileQuery()); // in Statement class return super.executeQuery(compileQuery()); // in Statement class
} }
/** /*
* Execute a SQL INSERT, UPDATE or DELETE statement. In addition, * Execute a SQL INSERT, UPDATE or DELETE statement. In addition,
* SQL statements that return nothing such as SQL DDL statements can * SQL statements that return nothing such as SQL DDL statements can
* be executed. * be executed.
...@@ -113,7 +113,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -113,7 +113,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
return super.executeUpdate(compileQuery()); // in Statement class return super.executeUpdate(compileQuery()); // in Statement class
} }
/** /*
* Helper - this compiles the SQL query from the various parameters * Helper - this compiles the SQL query from the various parameters
* This is identical to toString() except it throws an exception if a * This is identical to toString() except it throws an exception if a
* parameter is unused. * parameter is unused.
...@@ -134,7 +134,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -134,7 +134,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
return sbuf.toString(); return sbuf.toString();
} }
/** /*
* Set a parameter to SQL NULL * Set a parameter to SQL NULL
* *
* <p><B>Note:</B> You must specify the parameters SQL type (although * <p><B>Note:</B> You must specify the parameters SQL type (although
...@@ -149,7 +149,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -149,7 +149,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, "null"); set(parameterIndex, "null");
} }
/** /*
* Set a parameter to a Java boolean value. The driver converts this * Set a parameter to a Java boolean value. The driver converts this
* to a SQL BIT value when it sends it to the database. * to a SQL BIT value when it sends it to the database.
* *
...@@ -162,7 +162,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -162,7 +162,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, x ? "'t'" : "'f'"); set(parameterIndex, x ? "'t'" : "'f'");
} }
/** /*
* Set a parameter to a Java byte value. The driver converts this to * Set a parameter to a Java byte value. The driver converts this to
* a SQL TINYINT value when it sends it to the database. * a SQL TINYINT value when it sends it to the database.
* *
...@@ -175,7 +175,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -175,7 +175,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, Integer.toString(x)); set(parameterIndex, Integer.toString(x));
} }
/** /*
* Set a parameter to a Java short value. The driver converts this * Set a parameter to a Java short value. The driver converts this
* to a SQL SMALLINT value when it sends it to the database. * to a SQL SMALLINT value when it sends it to the database.
* *
...@@ -188,7 +188,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -188,7 +188,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, Integer.toString(x)); set(parameterIndex, Integer.toString(x));
} }
/** /*
* Set a parameter to a Java int value. The driver converts this to * Set a parameter to a Java int value. The driver converts this to
* a SQL INTEGER value when it sends it to the database. * a SQL INTEGER value when it sends it to the database.
* *
...@@ -201,7 +201,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -201,7 +201,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, Integer.toString(x)); set(parameterIndex, Integer.toString(x));
} }
/** /*
* Set a parameter to a Java long value. The driver converts this to * Set a parameter to a Java long value. The driver converts this to
* a SQL BIGINT value when it sends it to the database. * a SQL BIGINT value when it sends it to the database.
* *
...@@ -214,7 +214,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -214,7 +214,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, Long.toString(x)); set(parameterIndex, Long.toString(x));
} }
/** /*
* Set a parameter to a Java float value. The driver converts this * Set a parameter to a Java float value. The driver converts this
* to a SQL FLOAT value when it sends it to the database. * to a SQL FLOAT value when it sends it to the database.
* *
...@@ -227,7 +227,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -227,7 +227,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, Float.toString(x)); set(parameterIndex, Float.toString(x));
} }
/** /*
* Set a parameter to a Java double value. The driver converts this * Set a parameter to a Java double value. The driver converts this
* to a SQL DOUBLE value when it sends it to the database * to a SQL DOUBLE value when it sends it to the database
* *
...@@ -240,7 +240,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -240,7 +240,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, Double.toString(x)); set(parameterIndex, Double.toString(x));
} }
/** /*
* Set a parameter to a java.lang.BigDecimal value. The driver * Set a parameter to a java.lang.BigDecimal value. The driver
* converts this to a SQL NUMERIC value when it sends it to the * converts this to a SQL NUMERIC value when it sends it to the
* database. * database.
...@@ -254,7 +254,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -254,7 +254,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
set(parameterIndex, x.toString()); set(parameterIndex, x.toString());
} }
/** /*
* Set a parameter to a Java String value. The driver converts this * Set a parameter to a Java String value. The driver converts this
* to a SQL VARCHAR or LONGVARCHAR value (depending on the arguments * to a SQL VARCHAR or LONGVARCHAR value (depending on the arguments
* size relative to the driver's limits on VARCHARs) when it sends it * size relative to the driver's limits on VARCHARs) when it sends it
...@@ -292,7 +292,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -292,7 +292,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* Set a parameter to a Java array of bytes. The driver converts this * Set a parameter to a Java array of bytes. The driver converts this
* to a SQL VARBINARY or LONGVARBINARY (depending on the argument's * to a SQL VARBINARY or LONGVARBINARY (depending on the argument's
* size relative to the driver's limits on VARBINARYs) when it sends * size relative to the driver's limits on VARBINARYs) when it sends
...@@ -332,7 +332,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -332,7 +332,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* Set a parameter to a java.sql.Date value. The driver converts this * Set a parameter to a java.sql.Date value. The driver converts this
* to a SQL DATE value when it sends it to the database. * to a SQL DATE value when it sends it to the database.
* *
...@@ -368,7 +368,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -368,7 +368,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
//set(parameterIndex, df.format(new java.util.Date(x.getTime()+86400000))); //set(parameterIndex, df.format(new java.util.Date(x.getTime()+86400000)));
} }
/** /*
* Set a parameter to a java.sql.Time value. The driver converts * Set a parameter to a java.sql.Time value. The driver converts
* this to a SQL TIME value when it sends it to the database. * this to a SQL TIME value when it sends it to the database.
* *
...@@ -388,7 +388,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -388,7 +388,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* Set a parameter to a java.sql.Timestamp value. The driver converts * Set a parameter to a java.sql.Timestamp value. The driver converts
* this to a SQL TIMESTAMP value when it sends it to the database. * this to a SQL TIMESTAMP value when it sends it to the database.
* *
...@@ -426,7 +426,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -426,7 +426,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* When a very large ASCII value is input to a LONGVARCHAR parameter, * When a very large ASCII value is input to a LONGVARCHAR parameter,
* it may be more practical to send it via a java.io.InputStream. * it may be more practical to send it via a java.io.InputStream.
* JDBC will read the data from the stream as needed, until it reaches * JDBC will read the data from the stream as needed, until it reaches
...@@ -476,7 +476,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -476,7 +476,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* When a very large Unicode value is input to a LONGVARCHAR parameter, * When a very large Unicode value is input to a LONGVARCHAR parameter,
* it may be more practical to send it via a java.io.InputStream. * it may be more practical to send it via a java.io.InputStream.
* JDBC will read the data from the stream as needed, until it reaches * JDBC will read the data from the stream as needed, until it reaches
...@@ -528,7 +528,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -528,7 +528,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* When a very large binary value is input to a LONGVARBINARY parameter, * When a very large binary value is input to a LONGVARBINARY parameter,
* it may be more practical to send it via a java.io.InputStream. * it may be more practical to send it via a java.io.InputStream.
* JDBC will read the data from the stream as needed, until it reaches * JDBC will read the data from the stream as needed, until it reaches
...@@ -607,7 +607,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -607,7 +607,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* In general, parameter values remain in force for repeated used of a * In general, parameter values remain in force for repeated used of a
* Statement. Setting a parameter value automatically clears its * Statement. Setting a parameter value automatically clears its
* previous value. However, in coms cases, it is useful to immediately * previous value. However, in coms cases, it is useful to immediately
...@@ -624,7 +624,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -624,7 +624,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
inStrings[i] = null; inStrings[i] = null;
} }
/** /*
* Set the value of a parameter using an object; use the java.lang * Set the value of a parameter using an object; use the java.lang
* equivalent objects for integral values. * equivalent objects for integral values.
* *
...@@ -707,7 +707,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -707,7 +707,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
setObject(parameterIndex, x, targetSqlType, 0); setObject(parameterIndex, x, targetSqlType, 0);
} }
/** /*
* This stores an Object into a parameter. * This stores an Object into a parameter.
* <p>New for 6.4, if the object is not recognised, but it is * <p>New for 6.4, if the object is not recognised, but it is
* Serializable, then the object is serialised using the * Serializable, then the object is serialised using the
...@@ -751,7 +751,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -751,7 +751,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
setSerialize(parameterIndex, connection.putObject(x), x.getClass().getName() ); setSerialize(parameterIndex, connection.putObject(x), x.getClass().getName() );
} }
/** /*
* Some prepared statements return multiple results; the execute method * Some prepared statements return multiple results; the execute method
* handles these complex statements as well as the simpler form of * handles these complex statements as well as the simpler form of
* statements handled by executeQuery and executeUpdate * statements handled by executeQuery and executeUpdate
...@@ -765,7 +765,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -765,7 +765,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
return super.execute(compileQuery()); // in Statement class return super.execute(compileQuery()); // in Statement class
} }
/** /*
* Returns the SQL statement with the current template values * Returns the SQL statement with the current template values
* substituted. * substituted.
* NB: This is identical to compileQuery() except instead of throwing * NB: This is identical to compileQuery() except instead of throwing
...@@ -795,7 +795,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -795,7 +795,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
// END OF PUBLIC INTERFACE // END OF PUBLIC INTERFACE
// ************************************************************** // **************************************************************
/** /*
* There are a lot of setXXX classes which all basically do * There are a lot of setXXX classes which all basically do
* the same thing. We need a method which actually does the * the same thing. We need a method which actually does the
* set for us. * set for us.
...@@ -811,7 +811,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -811,7 +811,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
inStrings[paramIndex - 1] = s; inStrings[paramIndex - 1] = s;
} }
/** /*
* Set a parameter to a tablerow-type oid reference. * Set a parameter to a tablerow-type oid reference.
* *
* @param parameterIndex the first parameter is 1... * @param parameterIndex the first parameter is 1...
...@@ -836,7 +836,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -836,7 +836,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
// ** JDBC 2 Extensions ** // ** JDBC 2 Extensions **
/** /*
* This parses the query and adds it to the current batch * This parses the query and adds it to the current batch
*/ */
public void addBatch() throws SQLException public void addBatch() throws SQLException
...@@ -844,7 +844,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -844,7 +844,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
super.addBatch(compileQuery()); super.addBatch(compileQuery());
} }
/** /*
* Not sure what this one does, so I'm saying this returns the MetaData for * Not sure what this one does, so I'm saying this returns the MetaData for
* the last ResultSet returned! * the last ResultSet returned!
*/ */
...@@ -863,7 +863,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -863,7 +863,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
setString(i, x.toString()); setString(i, x.toString());
} }
/** /*
* Sets a Blob * Sets a Blob
*/ */
public void setBlob(int i, Blob x) throws SQLException public void setBlob(int i, Blob x) throws SQLException
...@@ -897,7 +897,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -897,7 +897,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
setInt(i, oid); setInt(i, oid);
} }
/** /*
* This is similar to setBinaryStream except it uses a Reader instead of * This is similar to setBinaryStream except it uses a Reader instead of
* InputStream. * InputStream.
*/ */
...@@ -956,7 +956,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -956,7 +956,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* New in 7.1 * New in 7.1
*/ */
public void setClob(int i, Clob x) throws SQLException public void setClob(int i, Clob x) throws SQLException
...@@ -990,7 +990,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -990,7 +990,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
setInt(i, oid); setInt(i, oid);
} }
/** /*
* At least this works as in PostgreSQL null represents anything null ;-) * At least this works as in PostgreSQL null represents anything null ;-)
* *
* New in 7,1 * New in 7,1
...@@ -1005,7 +1005,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -1005,7 +1005,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
throw org.postgresql.Driver.notImplemented(); throw org.postgresql.Driver.notImplemented();
} }
/** /*
* New in 7,1 * New in 7,1
*/ */
public void setDate(int i, java.sql.Date d, java.util.Calendar cal) throws SQLException public void setDate(int i, java.sql.Date d, java.util.Calendar cal) throws SQLException
...@@ -1019,7 +1019,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -1019,7 +1019,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* New in 7,1 * New in 7,1
*/ */
public void setTime(int i, Time t, java.util.Calendar cal) throws SQLException public void setTime(int i, Time t, java.util.Calendar cal) throws SQLException
...@@ -1033,7 +1033,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta ...@@ -1033,7 +1033,7 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
} }
} }
/** /*
* New in 7,1 * New in 7,1
*/ */
public void setTimestamp(int i, Timestamp t, java.util.Calendar cal) throws SQLException public void setTimestamp(int i, Timestamp t, java.util.Calendar cal) throws SQLException
......
...@@ -16,7 +16,7 @@ import org.postgresql.largeobject.*; ...@@ -16,7 +16,7 @@ import org.postgresql.largeobject.*;
import org.postgresql.util.*; import org.postgresql.util.*;
import org.postgresql.core.Encoding; import org.postgresql.core.Encoding;
/** /*
* A ResultSet provides access to a table of data generated by executing a * A ResultSet provides access to a table of data generated by executing a
* Statement. The table rows are retrieved in sequence. Within a row its * Statement. The table rows are retrieved in sequence. Within a row its
* column values can be accessed in any order. * column values can be accessed in any order.
...@@ -63,7 +63,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -63,7 +63,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
private StringBuffer sbuf = null; private StringBuffer sbuf = null;
/** /*
* Create a new ResultSet - Note that we create ResultSets to * Create a new ResultSet - Note that we create ResultSets to
* represent the results of everything. * represent the results of everything.
* *
...@@ -79,7 +79,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -79,7 +79,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
super(conn, fields, tuples, status, updateCount, insertOID, binaryCursor); super(conn, fields, tuples, status, updateCount, insertOID, binaryCursor);
} }
/** /*
* Create a new ResultSet - Note that we create ResultSets to * Create a new ResultSet - Note that we create ResultSets to
* represent the results of everything. * represent the results of everything.
* *
...@@ -95,7 +95,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -95,7 +95,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
super(conn, fields, tuples, status, updateCount, 0, false); super(conn, fields, tuples, status, updateCount, 0, false);
} }
/** /*
* A ResultSet is initially positioned before its first row, * A ResultSet is initially positioned before its first row,
* the first call to next makes the first row the current row; * the first call to next makes the first row the current row;
* the second call makes the second row the current row, etc. * the second call makes the second row the current row, etc.
...@@ -116,7 +116,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -116,7 +116,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return true; return true;
} }
/** /*
* In some cases, it is desirable to immediately release a ResultSet * In some cases, it is desirable to immediately release a ResultSet
* database and JDBC resources instead of waiting for this to happen * database and JDBC resources instead of waiting for this to happen
* when it is automatically closed. The close method provides this * when it is automatically closed. The close method provides this
...@@ -139,7 +139,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -139,7 +139,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
} }
} }
/** /*
* A column may have the value of SQL NULL; wasNull() reports whether * A column may have the value of SQL NULL; wasNull() reports whether
* the last column read had this special value. Note that you must * the last column read had this special value. Note that you must
* first call getXXX on a column to try to read its value and then * first call getXXX on a column to try to read its value and then
...@@ -153,7 +153,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -153,7 +153,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return wasNullFlag; return wasNullFlag;
} }
/** /*
* Get the value of a column in the current row as a Java String * Get the value of a column in the current row as a Java String
* *
* @param columnIndex the first column is 1, the second is 2... * @param columnIndex the first column is 1, the second is 2...
...@@ -173,7 +173,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -173,7 +173,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return encoding.decode(this_row[columnIndex - 1]); return encoding.decode(this_row[columnIndex - 1]);
} }
/** /*
* Get the value of a column in the current row as a Java boolean * Get the value of a column in the current row as a Java boolean
* *
* @param columnIndex the first column is 1, the second is 2... * @param columnIndex the first column is 1, the second is 2...
...@@ -185,7 +185,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -185,7 +185,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return toBoolean( getString(columnIndex) ); return toBoolean( getString(columnIndex) );
} }
/** /*
* Get the value of a column in the current row as a Java byte. * Get the value of a column in the current row as a Java byte.
* *
* @param columnIndex the first column is 1, the second is 2,... * @param columnIndex the first column is 1, the second is 2,...
...@@ -210,7 +210,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -210,7 +210,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return 0; // SQL NULL return 0; // SQL NULL
} }
/** /*
* Get the value of a column in the current row as a Java short. * Get the value of a column in the current row as a Java short.
* *
* @param columnIndex the first column is 1, the second is 2,... * @param columnIndex the first column is 1, the second is 2,...
...@@ -235,7 +235,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -235,7 +235,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return 0; // SQL NULL return 0; // SQL NULL
} }
/** /*
* Get the value of a column in the current row as a Java int. * Get the value of a column in the current row as a Java int.
* *
* @param columnIndex the first column is 1, the second is 2,... * @param columnIndex the first column is 1, the second is 2,...
...@@ -247,7 +247,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -247,7 +247,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return toInt( getFixedString(columnIndex) ); return toInt( getFixedString(columnIndex) );
} }
/** /*
* Get the value of a column in the current row as a Java long. * Get the value of a column in the current row as a Java long.
* *
* @param columnIndex the first column is 1, the second is 2,... * @param columnIndex the first column is 1, the second is 2,...
...@@ -259,7 +259,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -259,7 +259,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return toLong( getFixedString(columnIndex) ); return toLong( getFixedString(columnIndex) );
} }
/** /*
* Get the value of a column in the current row as a Java float. * Get the value of a column in the current row as a Java float.
* *
* @param columnIndex the first column is 1, the second is 2,... * @param columnIndex the first column is 1, the second is 2,...
...@@ -271,7 +271,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -271,7 +271,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return toFloat( getFixedString(columnIndex) ); return toFloat( getFixedString(columnIndex) );
} }
/** /*
* Get the value of a column in the current row as a Java double. * Get the value of a column in the current row as a Java double.
* *
* @param columnIndex the first column is 1, the second is 2,... * @param columnIndex the first column is 1, the second is 2,...
...@@ -283,7 +283,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -283,7 +283,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return toDouble( getFixedString(columnIndex) ); return toDouble( getFixedString(columnIndex) );
} }
/** /*
* Get the value of a column in the current row as a * Get the value of a column in the current row as a
* java.math.BigDecimal object * java.math.BigDecimal object
* *
...@@ -298,7 +298,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -298,7 +298,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return toBigDecimal( getFixedString(columnIndex), scale ); return toBigDecimal( getFixedString(columnIndex), scale );
} }
/** /*
* Get the value of a column in the current row as a Java byte array. * Get the value of a column in the current row as a Java byte array.
* *
* <p>In normal use, the bytes represent the raw values returned by the * <p>In normal use, the bytes represent the raw values returned by the
...@@ -359,7 +359,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -359,7 +359,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return null; return null;
} }
/** /*
* Get the value of a column in the current row as a java.sql.Date * Get the value of a column in the current row as a java.sql.Date
* object * object
* *
...@@ -372,7 +372,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -372,7 +372,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return toDate( getString(columnIndex) ); return toDate( getString(columnIndex) );
} }
/** /*
* Get the value of a column in the current row as a java.sql.Time * Get the value of a column in the current row as a java.sql.Time
* object * object
* *
...@@ -385,7 +385,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -385,7 +385,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return toTime( getString(columnIndex) ); return toTime( getString(columnIndex) );
} }
/** /*
* Get the value of a column in the current row as a * Get the value of a column in the current row as a
* java.sql.Timestamp object * java.sql.Timestamp object
* *
...@@ -398,7 +398,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -398,7 +398,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return toTimestamp( getString(columnIndex), this ); return toTimestamp( getString(columnIndex), this );
} }
/** /*
* A column value can be retrieved as a stream of ASCII characters * A column value can be retrieved as a stream of ASCII characters
* and then read in chunks from the stream. This method is * and then read in chunks from the stream. This method is
* particular suitable for retrieving large LONGVARCHAR values. * particular suitable for retrieving large LONGVARCHAR values.
...@@ -452,7 +452,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -452,7 +452,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
} }
} }
/** /*
* A column value can also be retrieved as a stream of Unicode * A column value can also be retrieved as a stream of Unicode
* characters. We implement this as a binary stream. * characters. We implement this as a binary stream.
* *
...@@ -497,7 +497,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -497,7 +497,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
} }
} }
/** /*
* A column value can also be retrieved as a binary strea. This * A column value can also be retrieved as a binary strea. This
* method is suitable for retrieving LONGVARBINARY values. * method is suitable for retrieving LONGVARBINARY values.
* *
...@@ -540,7 +540,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -540,7 +540,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return null; return null;
} }
/** /*
* The following routines simply convert the columnName into * The following routines simply convert the columnName into
* a columnIndex and then call the appropriate routine above. * a columnIndex and then call the appropriate routine above.
* *
...@@ -589,7 +589,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -589,7 +589,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return getDouble(findColumn(columnName)); return getDouble(findColumn(columnName));
} }
/** /*
* @deprecated * @deprecated
*/ */
public BigDecimal getBigDecimal(String columnName, int scale) throws SQLException public BigDecimal getBigDecimal(String columnName, int scale) throws SQLException
...@@ -622,7 +622,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -622,7 +622,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return getAsciiStream(findColumn(columnName)); return getAsciiStream(findColumn(columnName));
} }
/** /*
* *
* ** DEPRECATED IN JDBC 2 ** * ** DEPRECATED IN JDBC 2 **
* *
...@@ -638,7 +638,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -638,7 +638,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return getBinaryStream(findColumn(columnName)); return getBinaryStream(findColumn(columnName));
} }
/** /*
* The first warning reported by calls on this ResultSet is * The first warning reported by calls on this ResultSet is
* returned. Subsequent ResultSet warnings will be chained * returned. Subsequent ResultSet warnings will be chained
* to this SQLWarning. * to this SQLWarning.
...@@ -659,7 +659,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -659,7 +659,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return warnings; return warnings;
} }
/** /*
* After this call, getWarnings returns null until a new warning * After this call, getWarnings returns null until a new warning
* is reported for this ResultSet * is reported for this ResultSet
* *
...@@ -670,7 +670,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -670,7 +670,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
warnings = null; warnings = null;
} }
/** /*
* Get the name of the SQL cursor used by this ResultSet * Get the name of the SQL cursor used by this ResultSet
* *
* <p>In SQL, a result table is retrieved though a cursor that is * <p>In SQL, a result table is retrieved though a cursor that is
...@@ -693,7 +693,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -693,7 +693,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return connection.getCursorName(); return connection.getCursorName();
} }
/** /*
* The numbers, types and properties of a ResultSet's columns are * The numbers, types and properties of a ResultSet's columns are
* provided by the getMetaData method * provided by the getMetaData method
* *
...@@ -705,7 +705,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -705,7 +705,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return new ResultSetMetaData(rows, fields); return new ResultSetMetaData(rows, fields);
} }
/** /*
* Get the value of a column in the current row as a Java object * Get the value of a column in the current row as a Java object
* *
* <p>This method will return the value of the given column as a * <p>This method will return the value of the given column as a
...@@ -783,7 +783,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -783,7 +783,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
} }
} }
/** /*
* Get the value of a column in the current row as a Java object * Get the value of a column in the current row as a Java object
* *
*<p> This method will return the value of the given column as a *<p> This method will return the value of the given column as a
...@@ -803,7 +803,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -803,7 +803,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return getObject(findColumn(columnName)); return getObject(findColumn(columnName));
} }
/** /*
* Map a ResultSet column name to a ResultSet column index * Map a ResultSet column name to a ResultSet column index
* *
* @param columnName the name of the column * @param columnName the name of the column
...@@ -964,7 +964,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -964,7 +964,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
} }
} }
/** /*
* New in 7.1 * New in 7.1
*/ */
public Clob getClob(String columnName) throws SQLException public Clob getClob(String columnName) throws SQLException
...@@ -972,7 +972,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -972,7 +972,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return getClob(findColumn(columnName)); return getClob(findColumn(columnName));
} }
/** /*
* New in 7.1 * New in 7.1
*/ */
public Clob getClob(int i) throws SQLException public Clob getClob(int i) throws SQLException
...@@ -1046,7 +1046,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -1046,7 +1046,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
return getObject(findColumn(columnName), map); return getObject(findColumn(columnName), map);
} }
/** /*
* This checks against map for the type of column i, and if found returns * This checks against map for the type of column i, and if found returns
* an object based on that mapping. The class must implement the SQLData * an object based on that mapping. The class must implement the SQLData
* interface. * interface.
...@@ -1058,7 +1058,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -1058,7 +1058,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
String t = getTypeName(i); String t = getTypeName(i);
SQLData o = (SQLData) map.get(t); SQLData o = (SQLData) map.get(t);
// If the type is not in the map, then pass to the existing code // If the type is not in the map, then pass to the existing code
if(o==null) if (o==null)
return getObject(i); return getObject(i);
o.readSQL(s,t); o.readSQL(s,t);
return o; return o;
...@@ -1446,7 +1446,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -1446,7 +1446,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
throw new PSQLException("postgresql.noupdate"); throw new PSQLException("postgresql.noupdate");
} }
/** /*
* This is called by Statement to register itself with this statement. * This is called by Statement to register itself with this statement.
* It's used currently by getStatement() but may also with the new core * It's used currently by getStatement() but may also with the new core
* package. * package.
......
...@@ -11,7 +11,7 @@ import java.util.*; ...@@ -11,7 +11,7 @@ import java.util.*;
import org.postgresql.*; import org.postgresql.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* A ResultSetMetaData object can be used to find out about the types and * A ResultSetMetaData object can be used to find out about the types and
* properties of the columns in a ResultSet * properties of the columns in a ResultSet
* *
...@@ -22,7 +22,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -22,7 +22,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
Vector rows; Vector rows;
Field[] fields; Field[] fields;
/** /*
* Initialise for a result with a tuple set and * Initialise for a result with a tuple set and
* a field descriptor set * a field descriptor set
* *
...@@ -35,7 +35,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -35,7 +35,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
this.fields = fields; this.fields = fields;
} }
/** /*
* Whats the number of columns in the ResultSet? * Whats the number of columns in the ResultSet?
* *
* @return the number * @return the number
...@@ -46,7 +46,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -46,7 +46,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return fields.length; return fields.length;
} }
/** /*
* Is the column automatically numbered (and thus read-only) * Is the column automatically numbered (and thus read-only)
* I believe that PostgreSQL does not support this feature. * I believe that PostgreSQL does not support this feature.
* *
...@@ -59,7 +59,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -59,7 +59,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return false; return false;
} }
/** /*
* Does a column's case matter? ASSUMPTION: Any field that is * Does a column's case matter? ASSUMPTION: Any field that is
* not obviously case insensitive is assumed to be case sensitive * not obviously case insensitive is assumed to be case sensitive
* *
...@@ -87,7 +87,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -87,7 +87,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
} }
} }
/** /*
* Can the column be used in a WHERE clause? Basically for * Can the column be used in a WHERE clause? Basically for
* this, I split the functions into two types: recognised * this, I split the functions into two types: recognised
* types (which are always useable), and OTHER types (which * types (which are always useable), and OTHER types (which
...@@ -114,7 +114,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -114,7 +114,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
} }
} }
/** /*
* Is the column a cash value? 6.1 introduced the cash/money * Is the column a cash value? 6.1 introduced the cash/money
* type, which haven't been incorporated as of 970414, so I * type, which haven't been incorporated as of 970414, so I
* just check the type name for both 'cash' and 'money' * just check the type name for both 'cash' and 'money'
...@@ -130,7 +130,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -130,7 +130,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return type_name.equals("cash") || type_name.equals("money"); return type_name.equals("cash") || type_name.equals("money");
} }
/** /*
* Indicates the nullability of values in the designated column. * Indicates the nullability of values in the designated column.
* *
* @param column the first column is 1, the second is 2... * @param column the first column is 1, the second is 2...
...@@ -147,7 +147,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -147,7 +147,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return columnNullableUnknown; return columnNullableUnknown;
} }
/** /*
* Is the column a signed number? In PostgreSQL, all numbers * Is the column a signed number? In PostgreSQL, all numbers
* are signed, so this is trivial. However, strings are not * are signed, so this is trivial. However, strings are not
* signed (duh!) * signed (duh!)
...@@ -177,7 +177,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -177,7 +177,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
} }
} }
/** /*
* What is the column's normal maximum width in characters? * What is the column's normal maximum width in characters?
* *
* @param column the first column is 1, the second is 2, etc. * @param column the first column is 1, the second is 2, etc.
...@@ -233,7 +233,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -233,7 +233,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return f.getLength(); return f.getLength();
} }
/** /*
* What is the suggested column title for use in printouts and * What is the suggested column title for use in printouts and
* displays? We suggest the ColumnName! * displays? We suggest the ColumnName!
* *
...@@ -246,7 +246,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -246,7 +246,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return getColumnName(column); return getColumnName(column);
} }
/** /*
* What's a column's name? * What's a column's name?
* *
* @param column the first column is 1, the second is 2, etc. * @param column the first column is 1, the second is 2, etc.
...@@ -261,7 +261,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -261,7 +261,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return "field" + column; return "field" + column;
} }
/** /*
* What is a column's table's schema? This relies on us knowing * What is a column's table's schema? This relies on us knowing
* the table name....which I don't know how to do as yet. The * the table name....which I don't know how to do as yet. The
* JDBC specification allows us to return "" if this is not * JDBC specification allows us to return "" if this is not
...@@ -276,7 +276,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -276,7 +276,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return ""; return "";
} }
/** /*
* What is a column's number of decimal digits. * What is a column's number of decimal digits.
* *
* @param column the first column is 1, the second is 2... * @param column the first column is 1, the second is 2...
...@@ -312,7 +312,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -312,7 +312,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
} }
} }
/** /*
* What is a column's number of digits to the right of the * What is a column's number of digits to the right of the
* decimal point? * decimal point?
* *
...@@ -349,7 +349,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -349,7 +349,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
} }
} }
/** /*
* Whats a column's table's name? How do I find this out? Both * Whats a column's table's name? How do I find this out? Both
* getSchemaName() and getCatalogName() rely on knowing the table * getSchemaName() and getCatalogName() rely on knowing the table
* Name, so we need this before we can work on them. * Name, so we need this before we can work on them.
...@@ -363,7 +363,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -363,7 +363,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return ""; return "";
} }
/** /*
* What's a column's table's catalog name? As with getSchemaName(), * What's a column's table's catalog name? As with getSchemaName(),
* we can say that if getTableName() returns n/a, then we can too - * we can say that if getTableName() returns n/a, then we can too -
* otherwise, we need to work on it. * otherwise, we need to work on it.
...@@ -377,7 +377,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -377,7 +377,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return ""; return "";
} }
/** /*
* What is a column's SQL Type? (java.sql.Type int) * What is a column's SQL Type? (java.sql.Type int)
* *
* @param column the first column is 1, the second is 2, etc. * @param column the first column is 1, the second is 2, etc.
...@@ -391,7 +391,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -391,7 +391,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return getField(column).getSQLType(); return getField(column).getSQLType();
} }
/** /*
* Whats is the column's data source specific type name? * Whats is the column's data source specific type name?
* *
* @param column the first column is 1, the second is 2, etc. * @param column the first column is 1, the second is 2, etc.
...@@ -403,7 +403,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -403,7 +403,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return getField(column).getPGType(); return getField(column).getPGType();
} }
/** /*
* Is the column definitely not writable? In reality, we would * Is the column definitely not writable? In reality, we would
* have to check the GRANT/REVOKE stuff for this to be effective, * have to check the GRANT/REVOKE stuff for this to be effective,
* and I haven't really looked into that yet, so this will get * and I haven't really looked into that yet, so this will get
...@@ -418,7 +418,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -418,7 +418,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return false; return false;
} }
/** /*
* Is it possible for a write on the column to succeed? Again, we * Is it possible for a write on the column to succeed? Again, we
* would in reality have to check the GRANT/REVOKE stuff, which * would in reality have to check the GRANT/REVOKE stuff, which
* I haven't worked with as yet. However, if it isn't ReadOnly, then * I haven't worked with as yet. However, if it isn't ReadOnly, then
...@@ -433,7 +433,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -433,7 +433,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
return !isReadOnly(column); return !isReadOnly(column);
} }
/** /*
* Will a write on this column definately succeed? Hmmm...this * Will a write on this column definately succeed? Hmmm...this
* is a bad one, since the two preceding functions have not been * is a bad one, since the two preceding functions have not been
* really defined. I cannot tell is the short answer. I thus * really defined. I cannot tell is the short answer. I thus
...@@ -452,7 +452,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData ...@@ -452,7 +452,7 @@ public class ResultSetMetaData implements java.sql.ResultSetMetaData
// END OF PUBLIC INTERFACE // END OF PUBLIC INTERFACE
// ******************************************************** // ********************************************************
/** /*
* For several routines in this package, we need to convert * For several routines in this package, we need to convert
* a columnIndex into a Field[] descriptor. Rather than do * a columnIndex into a Field[] descriptor. Rather than do
* the same code several times, here it is. * the same code several times, here it is.
......
...@@ -9,7 +9,7 @@ import java.sql.*; ...@@ -9,7 +9,7 @@ import java.sql.*;
import java.util.Vector; import java.util.Vector;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* A Statement object is used for executing a static SQL statement and * A Statement object is used for executing a static SQL statement and
* obtaining the results produced by it. * obtaining the results produced by it.
* *
...@@ -29,7 +29,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -29,7 +29,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
private int resultsettype; // the resultset type to return private int resultsettype; // the resultset type to return
private int concurrency; // is it updateable or not? private int concurrency; // is it updateable or not?
/** /*
* Constructor for a Statement. It simply sets the connection * Constructor for a Statement. It simply sets the connection
* that created us. * that created us.
* *
...@@ -42,7 +42,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -42,7 +42,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
concurrency = java.sql.ResultSet.CONCUR_READ_ONLY; concurrency = java.sql.ResultSet.CONCUR_READ_ONLY;
} }
/** /*
* Execute a SQL statement that retruns a single ResultSet * Execute a SQL statement that retruns a single ResultSet
* *
* @param sql typically a static SQL SELECT statement * @param sql typically a static SQL SELECT statement
...@@ -59,7 +59,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -59,7 +59,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
return result; return result;
} }
/** /*
* Execute a SQL INSERT, UPDATE or DELETE statement. In addition * Execute a SQL INSERT, UPDATE or DELETE statement. In addition
* SQL statements that return nothing such as SQL DDL statements * SQL statements that return nothing such as SQL DDL statements
* can be executed * can be executed
...@@ -76,7 +76,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -76,7 +76,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
return this.getUpdateCount(); return this.getUpdateCount();
} }
/** /*
* setCursorName defines the SQL cursor name that will be used by * setCursorName defines the SQL cursor name that will be used by
* subsequent execute methods. This name can then be used in SQL * subsequent execute methods. This name can then be used in SQL
* positioned update/delete statements to identify the current row * positioned update/delete statements to identify the current row
...@@ -100,7 +100,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -100,7 +100,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
connection.setCursorName(name); connection.setCursorName(name);
} }
/** /*
* Execute a SQL statement that may return multiple results. We * Execute a SQL statement that may return multiple results. We
* don't have to worry about this since we do not support multiple * don't have to worry about this since we do not support multiple
* ResultSets. You can use getResultSet or getUpdateCount to * ResultSets. You can use getResultSet or getUpdateCount to
...@@ -135,7 +135,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -135,7 +135,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
return (result != null && ((org.postgresql.ResultSet)result).reallyResultSet()); return (result != null && ((org.postgresql.ResultSet)result).reallyResultSet());
} }
/** /*
* getUpdateCount returns the current result as an update count, * getUpdateCount returns the current result as an update count,
* if the result is a ResultSet or there are no more results, -1 * if the result is a ResultSet or there are no more results, -1
* is returned. It should only be called once per result. * is returned. It should only be called once per result.
...@@ -152,7 +152,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -152,7 +152,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
return ((org.postgresql.ResultSet)result).getResultCount(); return ((org.postgresql.ResultSet)result).getResultCount();
} }
/** /*
* getMoreResults moves to a Statement's next result. If it returns * getMoreResults moves to a Statement's next result. If it returns
* true, this result is a ResulSet. * true, this result is a ResulSet.
* *
...@@ -249,7 +249,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -249,7 +249,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
throw org.postgresql.Driver.notImplemented(); throw org.postgresql.Driver.notImplemented();
} }
/** /*
* New in 7.1 * New in 7.1
*/ */
public void setResultSetConcurrency(int value) throws SQLException public void setResultSetConcurrency(int value) throws SQLException
...@@ -257,7 +257,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat ...@@ -257,7 +257,7 @@ public class Statement extends org.postgresql.Statement implements java.sql.Stat
concurrency = value; concurrency = value;
} }
/** /*
* New in 7.1 * New in 7.1
*/ */
public void setResultSetType(int value) throws SQLException public void setResultSetType(int value) throws SQLException
......
...@@ -21,7 +21,7 @@ import org.postgresql.Field; ...@@ -21,7 +21,7 @@ import org.postgresql.Field;
import org.postgresql.largeobject.*; import org.postgresql.largeobject.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* @see ResultSet * @see ResultSet
* @see ResultSetMetaData * @see ResultSetMetaData
* @see java.sql.ResultSet * @see java.sql.ResultSet
...@@ -29,7 +29,7 @@ import org.postgresql.util.*; ...@@ -29,7 +29,7 @@ import org.postgresql.util.*;
public class UpdateableResultSet extends org.postgresql.jdbc2.ResultSet public class UpdateableResultSet extends org.postgresql.jdbc2.ResultSet
{ {
/** /*
* Create a new ResultSet - Note that we create ResultSets to * Create a new ResultSet - Note that we create ResultSets to
* represent the results of everything. * represent the results of everything.
* *
...@@ -45,7 +45,7 @@ public class UpdateableResultSet extends org.postgresql.jdbc2.ResultSet ...@@ -45,7 +45,7 @@ public class UpdateableResultSet extends org.postgresql.jdbc2.ResultSet
super(conn, fields, tuples, status, updateCount, insertOID, binaryCursor); super(conn, fields, tuples, status, updateCount, insertOID, binaryCursor);
} }
/** /*
* Create a new ResultSet - Note that we create ResultSets to * Create a new ResultSet - Note that we create ResultSets to
* represent the results of everything. * represent the results of everything.
* *
......
...@@ -4,39 +4,39 @@ import java.io.InputStream; ...@@ -4,39 +4,39 @@ import java.io.InputStream;
import java.io.IOException; import java.io.IOException;
import java.sql.SQLException; import java.sql.SQLException;
/** /*
* This is an initial implementation of an InputStream from a large object. * This is an initial implementation of an InputStream from a large object.
* For now, the bare minimum is implemented. Later (after 7.1) we will overide * For now, the bare minimum is implemented. Later (after 7.1) we will overide
* the other read methods to optimise them. * the other read methods to optimise them.
*/ */
public class BlobInputStream extends InputStream public class BlobInputStream extends InputStream
{ {
/** /*
* The parent LargeObject * The parent LargeObject
*/ */
private LargeObject lo; private LargeObject lo;
/** /*
* Buffer used to improve performance * Buffer used to improve performance
*/ */
private byte[] buffer; private byte[] buffer;
/** /*
* Position within buffer * Position within buffer
*/ */
private int bpos; private int bpos;
/** /*
* The buffer size * The buffer size
*/ */
private int bsize; private int bsize;
/** /*
* The mark position * The mark position
*/ */
private int mpos = 0; private int mpos = 0;
/** /*
* @param lo LargeObject to read from * @param lo LargeObject to read from
*/ */
public BlobInputStream(LargeObject lo) public BlobInputStream(LargeObject lo)
...@@ -44,7 +44,7 @@ public class BlobInputStream extends InputStream ...@@ -44,7 +44,7 @@ public class BlobInputStream extends InputStream
this(lo, 1024); this(lo, 1024);
} }
/** /*
* @param lo LargeObject to read from * @param lo LargeObject to read from
* @param bsize buffer size * @param bsize buffer size
*/ */
...@@ -56,7 +56,7 @@ public class BlobInputStream extends InputStream ...@@ -56,7 +56,7 @@ public class BlobInputStream extends InputStream
this.bsize = bsize; this.bsize = bsize;
} }
/** /*
* The minimum required to implement input stream * The minimum required to implement input stream
*/ */
public int read() throws java.io.IOException public int read() throws java.io.IOException
...@@ -92,7 +92,7 @@ public class BlobInputStream extends InputStream ...@@ -92,7 +92,7 @@ public class BlobInputStream extends InputStream
} }
/** /*
* Closes this input stream and releases any system resources associated * Closes this input stream and releases any system resources associated
* with the stream. * with the stream.
* *
...@@ -114,7 +114,7 @@ public class BlobInputStream extends InputStream ...@@ -114,7 +114,7 @@ public class BlobInputStream extends InputStream
} }
} }
/** /*
* Marks the current position in this input stream. A subsequent call to * Marks the current position in this input stream. A subsequent call to
* the <code>reset</code> method repositions this stream at the last marked * the <code>reset</code> method repositions this stream at the last marked
* position so that subsequent reads re-read the same bytes. * position so that subsequent reads re-read the same bytes.
...@@ -150,7 +150,7 @@ public class BlobInputStream extends InputStream ...@@ -150,7 +150,7 @@ public class BlobInputStream extends InputStream
} }
} }
/** /*
* Repositions this stream to the position at the time the * Repositions this stream to the position at the time the
* <code>mark</code> method was last called on this input stream. * <code>mark</code> method was last called on this input stream.
* NB: If mark is not called we move to the begining. * NB: If mark is not called we move to the begining.
...@@ -170,7 +170,7 @@ public class BlobInputStream extends InputStream ...@@ -170,7 +170,7 @@ public class BlobInputStream extends InputStream
} }
} }
/** /*
* Tests if this input stream supports the <code>mark</code> and * Tests if this input stream supports the <code>mark</code> and
* <code>reset</code> methods. The <code>markSupported</code> method of * <code>reset</code> methods. The <code>markSupported</code> method of
* <code>InputStream</code> returns <code>false</code>. * <code>InputStream</code> returns <code>false</code>.
......
...@@ -4,32 +4,32 @@ import java.io.IOException; ...@@ -4,32 +4,32 @@ import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.sql.SQLException; import java.sql.SQLException;
/** /*
* This implements a basic output stream that writes to a LargeObject * This implements a basic output stream that writes to a LargeObject
*/ */
public class BlobOutputStream extends OutputStream public class BlobOutputStream extends OutputStream
{ {
/** /*
* The parent LargeObject * The parent LargeObject
*/ */
private LargeObject lo; private LargeObject lo;
/** /*
* Buffer * Buffer
*/ */
private byte buf[]; private byte buf[];
/** /*
* Size of the buffer (default 1K) * Size of the buffer (default 1K)
*/ */
private int bsize; private int bsize;
/** /*
* Position within the buffer * Position within the buffer
*/ */
private int bpos; private int bpos;
/** /*
* Create an OutputStream to a large object * Create an OutputStream to a large object
* @param lo LargeObject * @param lo LargeObject
*/ */
...@@ -38,7 +38,7 @@ public class BlobOutputStream extends OutputStream ...@@ -38,7 +38,7 @@ public class BlobOutputStream extends OutputStream
this(lo, 1024); this(lo, 1024);
} }
/** /*
* Create an OutputStream to a large object * Create an OutputStream to a large object
* @param lo LargeObject * @param lo LargeObject
* @param bsize The size of the buffer used to improve performance * @param bsize The size of the buffer used to improve performance
...@@ -68,7 +68,7 @@ public class BlobOutputStream extends OutputStream ...@@ -68,7 +68,7 @@ public class BlobOutputStream extends OutputStream
} }
} }
/** /*
* Flushes this output stream and forces any buffered output bytes * Flushes this output stream and forces any buffered output bytes
* to be written out. The general contract of <code>flush</code> is * to be written out. The general contract of <code>flush</code> is
* that calling it is an indication that, if any bytes previously * that calling it is an indication that, if any bytes previously
...@@ -92,7 +92,7 @@ public class BlobOutputStream extends OutputStream ...@@ -92,7 +92,7 @@ public class BlobOutputStream extends OutputStream
} }
} }
/** /*
* Closes this output stream and releases any system resources * Closes this output stream and releases any system resources
* associated with this stream. The general contract of <code>close</code> * associated with this stream. The general contract of <code>close</code>
* is that it closes the output stream. A closed stream cannot perform * is that it closes the output stream. A closed stream cannot perform
......
...@@ -8,7 +8,7 @@ import java.sql.*; ...@@ -8,7 +8,7 @@ import java.sql.*;
import org.postgresql.fastpath.*; import org.postgresql.fastpath.*;
/** /*
* This class implements the large object interface to org.postgresql. * This class implements the large object interface to org.postgresql.
* *
* <p>It provides the basic methods required to run the interface, plus * <p>It provides the basic methods required to run the interface, plus
...@@ -43,17 +43,17 @@ import org.postgresql.fastpath.*; ...@@ -43,17 +43,17 @@ import org.postgresql.fastpath.*;
*/ */
public class LargeObject public class LargeObject
{ {
/** /*
* Indicates a seek from the begining of a file * Indicates a seek from the begining of a file
*/ */
public static final int SEEK_SET = 0; public static final int SEEK_SET = 0;
/** /*
* Indicates a seek from the current position * Indicates a seek from the current position
*/ */
public static final int SEEK_CUR = 1; public static final int SEEK_CUR = 1;
/** /*
* Indicates a seek from the end of a file * Indicates a seek from the end of a file
*/ */
public static final int SEEK_END = 2; public static final int SEEK_END = 2;
...@@ -66,7 +66,7 @@ public class LargeObject ...@@ -66,7 +66,7 @@ public class LargeObject
private boolean closed = false; // true when we are closed private boolean closed = false; // true when we are closed
/** /*
* This opens a large object. * This opens a large object.
* *
* <p>If the object does not exist, then an SQLException is thrown. * <p>If the object does not exist, then an SQLException is thrown.
...@@ -95,7 +95,7 @@ public class LargeObject ...@@ -95,7 +95,7 @@ public class LargeObject
close(); close();
} }
/** /*
* @return the OID of this LargeObject * @return the OID of this LargeObject
*/ */
public int getOID() public int getOID()
...@@ -103,7 +103,7 @@ public class LargeObject ...@@ -103,7 +103,7 @@ public class LargeObject
return oid; return oid;
} }
/** /*
* This method closes the object. You must not call methods in this * This method closes the object. You must not call methods in this
* object after this is called. * object after this is called.
* @exception SQLException if a database-access error occurs. * @exception SQLException if a database-access error occurs.
...@@ -138,7 +138,7 @@ public class LargeObject ...@@ -138,7 +138,7 @@ public class LargeObject
} }
} }
/** /*
* Reads some data from the object, and return as a byte[] array * Reads some data from the object, and return as a byte[] array
* *
* @param len number of bytes to read * @param len number of bytes to read
...@@ -155,7 +155,7 @@ public class LargeObject ...@@ -155,7 +155,7 @@ public class LargeObject
return fp.getData("loread", args); return fp.getData("loread", args);
// This version allows us to break this down into 4k blocks // This version allows us to break this down into 4k blocks
//if(len<=4048) { //if (len<=4048) {
//// handle as before, return the whole block in one go //// handle as before, return the whole block in one go
//FastpathArg args[] = new FastpathArg[2]; //FastpathArg args[] = new FastpathArg[2];
//args[0] = new FastpathArg(fd); //args[0] = new FastpathArg(fd);
...@@ -165,10 +165,10 @@ public class LargeObject ...@@ -165,10 +165,10 @@ public class LargeObject
//// return in 4k blocks //// return in 4k blocks
//byte[] buf=new byte[len]; //byte[] buf=new byte[len];
//int off=0; //int off=0;
//while(len>0) { //while (len>0) {
//int bs=4048; //int bs=4048;
//len-=bs; //len-=bs;
//if(len<0) { //if (len<0) {
//bs+=len; //bs+=len;
//len=0; //len=0;
//} //}
...@@ -179,7 +179,7 @@ public class LargeObject ...@@ -179,7 +179,7 @@ public class LargeObject
//} //}
} }
/** /*
* Reads some data from the object into an existing array * Reads some data from the object into an existing array
* *
* @param buf destination array * @param buf destination array
...@@ -197,7 +197,7 @@ public class LargeObject ...@@ -197,7 +197,7 @@ public class LargeObject
return len; return len;
} }
/** /*
* Writes an array to the object * Writes an array to the object
* *
* @param buf array to write * @param buf array to write
...@@ -211,7 +211,7 @@ public class LargeObject ...@@ -211,7 +211,7 @@ public class LargeObject
fp.fastpath("lowrite", false, args); fp.fastpath("lowrite", false, args);
} }
/** /*
* Writes some data from an array to the object * Writes some data from an array to the object
* *
* @param buf destination array * @param buf destination array
...@@ -226,7 +226,7 @@ public class LargeObject ...@@ -226,7 +226,7 @@ public class LargeObject
write(data); write(data);
} }
/** /*
* Sets the current position within the object. * Sets the current position within the object.
* *
* <p>This is similar to the fseek() call in the standard C library. It * <p>This is similar to the fseek() call in the standard C library. It
...@@ -245,7 +245,7 @@ public class LargeObject ...@@ -245,7 +245,7 @@ public class LargeObject
fp.fastpath("lo_lseek", false, args); fp.fastpath("lo_lseek", false, args);
} }
/** /*
* Sets the current position within the object. * Sets the current position within the object.
* *
* <p>This is similar to the fseek() call in the standard C library. It * <p>This is similar to the fseek() call in the standard C library. It
...@@ -259,7 +259,7 @@ public class LargeObject ...@@ -259,7 +259,7 @@ public class LargeObject
seek(pos, SEEK_SET); seek(pos, SEEK_SET);
} }
/** /*
* @return the current position within the object * @return the current position within the object
* @exception SQLException if a database-access error occurs. * @exception SQLException if a database-access error occurs.
*/ */
...@@ -270,7 +270,7 @@ public class LargeObject ...@@ -270,7 +270,7 @@ public class LargeObject
return fp.getInteger("lo_tell", args); return fp.getInteger("lo_tell", args);
} }
/** /*
* This method is inefficient, as the only way to find out the size of * This method is inefficient, as the only way to find out the size of
* the object is to seek to the end, record the current position, then * the object is to seek to the end, record the current position, then
* return to the original position. * return to the original position.
...@@ -289,7 +289,7 @@ public class LargeObject ...@@ -289,7 +289,7 @@ public class LargeObject
return sz; return sz;
} }
/** /*
* Returns an InputStream from this object. * Returns an InputStream from this object.
* *
* <p>This InputStream can then be used in any method that requires an * <p>This InputStream can then be used in any method that requires an
...@@ -302,7 +302,7 @@ public class LargeObject ...@@ -302,7 +302,7 @@ public class LargeObject
return new BlobInputStream(this); return new BlobInputStream(this);
} }
/** /*
* Returns an OutputStream to this object * Returns an OutputStream to this object
* *
* <p>This OutputStream can then be used in any method that requires an * <p>This OutputStream can then be used in any method that requires an
......
...@@ -9,7 +9,7 @@ import java.sql.*; ...@@ -9,7 +9,7 @@ import java.sql.*;
import org.postgresql.fastpath.*; import org.postgresql.fastpath.*;
import org.postgresql.util.*; import org.postgresql.util.*;
/** /*
* This class implements the large object interface to org.postgresql. * This class implements the large object interface to org.postgresql.
* *
* <p>It provides methods that allow client code to create, open and delete * <p>It provides methods that allow client code to create, open and delete
...@@ -61,29 +61,29 @@ public class LargeObjectManager ...@@ -61,29 +61,29 @@ public class LargeObjectManager
// the fastpath api for this connection // the fastpath api for this connection
private Fastpath fp; private Fastpath fp;
/** /*
* This mode indicates we want to write to an object * This mode indicates we want to write to an object
*/ */
public static final int WRITE = 0x00020000; public static final int WRITE = 0x00020000;
/** /*
* This mode indicates we want to read an object * This mode indicates we want to read an object
*/ */
public static final int READ = 0x00040000; public static final int READ = 0x00040000;
/** /*
* This mode is the default. It indicates we want read and write access to * This mode is the default. It indicates we want read and write access to
* a large object * a large object
*/ */
public static final int READWRITE = READ | WRITE; public static final int READWRITE = READ | WRITE;
/** /*
* This prevents us being created by mere mortals * This prevents us being created by mere mortals
*/ */
private LargeObjectManager() private LargeObjectManager()
{} {}
/** /*
* Constructs the LargeObject API. * Constructs the LargeObject API.
* *
* <p><b>Important Notice</b> * <p><b>Important Notice</b>
...@@ -120,7 +120,7 @@ public class LargeObjectManager ...@@ -120,7 +120,7 @@ public class LargeObjectManager
DriverManager.println("Large Object initialised"); DriverManager.println("Large Object initialised");
} }
/** /*
* This opens an existing large object, based on its OID. This method * This opens an existing large object, based on its OID. This method
* assumes that READ and WRITE access is required (the default). * assumes that READ and WRITE access is required (the default).
* *
...@@ -133,7 +133,7 @@ public class LargeObjectManager ...@@ -133,7 +133,7 @@ public class LargeObjectManager
return new LargeObject(fp, oid, READWRITE); return new LargeObject(fp, oid, READWRITE);
} }
/** /*
* This opens an existing large object, based on its OID * This opens an existing large object, based on its OID
* *
* @param oid of large object * @param oid of large object
...@@ -146,7 +146,7 @@ public class LargeObjectManager ...@@ -146,7 +146,7 @@ public class LargeObjectManager
return new LargeObject(fp, oid, mode); return new LargeObject(fp, oid, mode);
} }
/** /*
* This creates a large object, returning its OID. * This creates a large object, returning its OID.
* *
* <p>It defaults to READWRITE for the new object's attributes. * <p>It defaults to READWRITE for the new object's attributes.
...@@ -161,7 +161,7 @@ public class LargeObjectManager ...@@ -161,7 +161,7 @@ public class LargeObjectManager
return fp.getInteger("lo_creat", args); return fp.getInteger("lo_creat", args);
} }
/** /*
* This creates a large object, returning its OID * This creates a large object, returning its OID
* *
* @param mode a bitmask describing different attributes of the new object * @param mode a bitmask describing different attributes of the new object
...@@ -175,7 +175,7 @@ public class LargeObjectManager ...@@ -175,7 +175,7 @@ public class LargeObjectManager
return fp.getInteger("lo_creat", args); return fp.getInteger("lo_creat", args);
} }
/** /*
* This deletes a large object. * This deletes a large object.
* *
* @param oid describing object to delete * @param oid describing object to delete
...@@ -188,7 +188,7 @@ public class LargeObjectManager ...@@ -188,7 +188,7 @@ public class LargeObjectManager
fp.fastpath("lo_unlink", false, args); fp.fastpath("lo_unlink", false, args);
} }
/** /*
* This deletes a large object. * This deletes a large object.
* *
* <p>It is identical to the delete method, and is supplied as the C API uses * <p>It is identical to the delete method, and is supplied as the C API uses
......
...@@ -16,11 +16,11 @@ import org.postgresql.Field; ...@@ -16,11 +16,11 @@ import org.postgresql.Field;
import org.postgresql.largeobject.*; import org.postgresql.largeobject.*;
import org.postgresql.largeobject.*; import org.postgresql.largeobject.*;
/** /*
* This implements the Blob interface, which is basically another way to * This implements the Blob interface, which is basically another way to
* access a LargeObject. * access a LargeObject.
* *
* $Id: PGblob.java,v 1.2 2001/10/25 05:59:59 momjian Exp $ * $Id: PGblob.java,v 1.3 2001/11/19 22:33:39 momjian Exp $
* *
*/ */
public class PGblob implements java.sql.Blob public class PGblob implements java.sql.Blob
......
...@@ -16,11 +16,11 @@ import org.postgresql.Field; ...@@ -16,11 +16,11 @@ import org.postgresql.Field;
import org.postgresql.largeobject.*; import org.postgresql.largeobject.*;
import org.postgresql.largeobject.*; import org.postgresql.largeobject.*;
/** /*
* This implements the Blob interface, which is basically another way to * This implements the Blob interface, which is basically another way to
* access a LargeObject. * access a LargeObject.
* *
* $Id: PGclob.java,v 1.2 2001/10/25 05:59:59 momjian Exp $ * $Id: PGclob.java,v 1.3 2001/11/19 22:33:39 momjian Exp $
* *
*/ */
public class PGclob implements java.sql.Clob public class PGclob implements java.sql.Clob
......
...@@ -6,12 +6,12 @@ import junit.framework.TestCase; ...@@ -6,12 +6,12 @@ import junit.framework.TestCase;
import org.postgresql.test.jdbc2.*; import org.postgresql.test.jdbc2.*;
import java.sql.*; import java.sql.*;
/** /*
* Executes all known tests for JDBC2 and includes some utility methods. * Executes all known tests for JDBC2 and includes some utility methods.
*/ */
public class JDBC2Tests extends TestSuite public class JDBC2Tests extends TestSuite
{ {
/** /*
* Returns the Test database JDBC URL * Returns the Test database JDBC URL
*/ */
public static String getURL() public static String getURL()
...@@ -19,7 +19,7 @@ public class JDBC2Tests extends TestSuite ...@@ -19,7 +19,7 @@ public class JDBC2Tests extends TestSuite
return System.getProperty("database"); return System.getProperty("database");
} }
/** /*
* Returns the Postgresql username * Returns the Postgresql username
*/ */
public static String getUser() public static String getUser()
...@@ -27,7 +27,7 @@ public class JDBC2Tests extends TestSuite ...@@ -27,7 +27,7 @@ public class JDBC2Tests extends TestSuite
return System.getProperty("username"); return System.getProperty("username");
} }
/** /*
* Returns the user's password * Returns the user's password
*/ */
public static String getPassword() public static String getPassword()
...@@ -35,7 +35,7 @@ public class JDBC2Tests extends TestSuite ...@@ -35,7 +35,7 @@ public class JDBC2Tests extends TestSuite
return System.getProperty("password"); return System.getProperty("password");
} }
/** /*
* Helper - opens a connection. * Helper - opens a connection.
*/ */
public static java.sql.Connection openDB() public static java.sql.Connection openDB()
...@@ -56,7 +56,7 @@ public class JDBC2Tests extends TestSuite ...@@ -56,7 +56,7 @@ public class JDBC2Tests extends TestSuite
return null; return null;
} }
/** /*
* Helper - closes an open connection. This rewrites SQLException to a failed * Helper - closes an open connection. This rewrites SQLException to a failed
* assertion. It's static so other classes can use it. * assertion. It's static so other classes can use it.
*/ */
...@@ -73,7 +73,7 @@ public class JDBC2Tests extends TestSuite ...@@ -73,7 +73,7 @@ public class JDBC2Tests extends TestSuite
} }
} }
/** /*
* Helper - creates a test table for use by a test * Helper - creates a test table for use by a test
*/ */
public static void createTable(Connection con, public static void createTable(Connection con,
...@@ -102,7 +102,7 @@ public class JDBC2Tests extends TestSuite ...@@ -102,7 +102,7 @@ public class JDBC2Tests extends TestSuite
} }
} }
/** /*
* Helper - drops a table * Helper - drops a table
*/ */
public static void dropTable(Connection con, String table) public static void dropTable(Connection con, String table)
...@@ -125,7 +125,7 @@ public class JDBC2Tests extends TestSuite ...@@ -125,7 +125,7 @@ public class JDBC2Tests extends TestSuite
} }
} }
/** /*
* Helper - generates INSERT SQL - very simple * Helper - generates INSERT SQL - very simple
*/ */
public static String insertSQL(String table, String values) public static String insertSQL(String table, String values)
...@@ -143,7 +143,7 @@ public class JDBC2Tests extends TestSuite ...@@ -143,7 +143,7 @@ public class JDBC2Tests extends TestSuite
return s + " VALUES (" + values + ")"; return s + " VALUES (" + values + ")";
} }
/** /*
* Helper - generates SELECT SQL - very simple * Helper - generates SELECT SQL - very simple
*/ */
public static String selectSQL(String table, String columns) public static String selectSQL(String table, String columns)
...@@ -168,7 +168,7 @@ public class JDBC2Tests extends TestSuite ...@@ -168,7 +168,7 @@ public class JDBC2Tests extends TestSuite
return s; return s;
} }
/** /*
* Helper to prefix a number with leading zeros - ugly but it works... * Helper to prefix a number with leading zeros - ugly but it works...
* @param v value to prefix * @param v value to prefix
* @param l number of digits (0-10) * @param l number of digits (0-10)
...@@ -179,7 +179,7 @@ public class JDBC2Tests extends TestSuite ...@@ -179,7 +179,7 @@ public class JDBC2Tests extends TestSuite
return s.substring(s.length() - l); return s.substring(s.length() - l);
} }
/** /*
* The main entry point for JUnit * The main entry point for JUnit
*/ */
public static TestSuite suite() public static TestSuite suite()
......
...@@ -172,7 +172,7 @@ import org.postgresql.test.JDBC2Tests; ...@@ -172,7 +172,7 @@ import org.postgresql.test.JDBC2Tests;
import junit.framework.TestCase; import junit.framework.TestCase;
import java.sql.*; import java.sql.*;
/** /*
* Test case for ... * Test case for ...
*/ */
public class FooTest extends TestCase { public class FooTest extends TestCase {
......
...@@ -9,7 +9,7 @@ public class ANTTest extends TestCase ...@@ -9,7 +9,7 @@ public class ANTTest extends TestCase
super(name); super(name);
} }
/** /*
* This tests the acceptsURL() method with a couple of good and badly formed * This tests the acceptsURL() method with a couple of good and badly formed
* jdbc urls * jdbc urls
*/ */
......
...@@ -5,11 +5,11 @@ import junit.framework.TestCase; ...@@ -5,11 +5,11 @@ import junit.framework.TestCase;
import java.sql.*; import java.sql.*;
/* TODO tests that can be added to this test case /* TODO tests that can be added to this test case
- SQLExceptions chained to a BatchUpdateException * - SQLExceptions chained to a BatchUpdateException
- test PreparedStatement as thoroughly as Statement * - test PreparedStatement as thoroughly as Statement
*/ */
/** /*
* Test case for Statement.batchExecute() * Test case for Statement.batchExecute()
*/ */
public class BatchExecuteTest extends TestCase public class BatchExecuteTest extends TestCase
...@@ -166,8 +166,6 @@ public class BatchExecuteTest extends TestCase ...@@ -166,8 +166,6 @@ public class BatchExecuteTest extends TestCase
pstmt.close(); pstmt.close();
} }
/**
*/
public void testTransactionalBehaviour() throws Exception public void testTransactionalBehaviour() throws Exception
{ {
Statement stmt = con.createStatement(); Statement stmt = con.createStatement();
......
...@@ -7,8 +7,8 @@ import java.sql.*; ...@@ -7,8 +7,8 @@ import java.sql.*;
import org.postgresql.largeobject.*; import org.postgresql.largeobject.*;
/** /*
* $Id: BlobTest.java,v 1.3 2001/10/25 05:59:59 momjian Exp $ * $Id: BlobTest.java,v 1.4 2001/11/19 22:33:39 momjian Exp $
* *
* Some simple tests based on problems reported by users. Hopefully these will * Some simple tests based on problems reported by users. Hopefully these will
* help prevent previous problems from re-occuring ;-) * help prevent previous problems from re-occuring ;-)
...@@ -40,7 +40,7 @@ public class BlobTest extends TestCase ...@@ -40,7 +40,7 @@ public class BlobTest extends TestCase
JDBC2Tests.closeDB(con); JDBC2Tests.closeDB(con);
} }
/** /*
* Tests one method of uploading a blob to the database * Tests one method of uploading a blob to the database
*/ */
public void testUploadBlob_LOOP() public void testUploadBlob_LOOP()
...@@ -64,7 +64,7 @@ public class BlobTest extends TestCase ...@@ -64,7 +64,7 @@ public class BlobTest extends TestCase
} }
} }
/** /*
* Tests one method of uploading a blob to the database * Tests one method of uploading a blob to the database
*/ */
public void testUploadBlob_NATIVE() public void testUploadBlob_NATIVE()
...@@ -88,7 +88,7 @@ public class BlobTest extends TestCase ...@@ -88,7 +88,7 @@ public class BlobTest extends TestCase
} }
} }
/** /*
* Helper - uploads a file into a blob using old style methods. We use this * Helper - uploads a file into a blob using old style methods. We use this
* because it always works, and we can use it as a base to test the new * because it always works, and we can use it as a base to test the new
* methods. * methods.
...@@ -152,7 +152,7 @@ public class BlobTest extends TestCase ...@@ -152,7 +152,7 @@ public class BlobTest extends TestCase
return oid; return oid;
} }
/** /*
* Helper - compares the blobs in a table with a local file. Note this alone * Helper - compares the blobs in a table with a local file. Note this alone
* tests the InputStream methods! * tests the InputStream methods!
*/ */
......
...@@ -4,19 +4,19 @@ import org.postgresql.test.JDBC2Tests; ...@@ -4,19 +4,19 @@ import org.postgresql.test.JDBC2Tests;
import junit.framework.TestCase; import junit.framework.TestCase;
import java.sql.*; import java.sql.*;
/** /*
* TestCase to test the internal functionality of org.postgresql.jdbc2.Connection * TestCase to test the internal functionality of org.postgresql.jdbc2.Connection
* and it's superclass. * and it's superclass.
* *
* PS: Do you know how difficult it is to type on a train? ;-) * PS: Do you know how difficult it is to type on a train? ;-)
* *
* $Id: ConnectionTest.java,v 1.6 2001/10/25 05:59:59 momjian Exp $ * $Id: ConnectionTest.java,v 1.7 2001/11/19 22:33:39 momjian Exp $
*/ */
public class ConnectionTest extends TestCase public class ConnectionTest extends TestCase
{ {
/** /*
* Constructor * Constructor
*/ */
public ConnectionTest(String name) public ConnectionTest(String name)
...@@ -46,7 +46,7 @@ public class ConnectionTest extends TestCase ...@@ -46,7 +46,7 @@ public class ConnectionTest extends TestCase
JDBC2Tests.closeDB(con); JDBC2Tests.closeDB(con);
} }
/** /*
* Tests the two forms of createStatement() * Tests the two forms of createStatement()
*/ */
public void testCreateStatement() public void testCreateStatement()
...@@ -72,7 +72,7 @@ public class ConnectionTest extends TestCase ...@@ -72,7 +72,7 @@ public class ConnectionTest extends TestCase
} }
} }
/** /*
* Tests the two forms of prepareStatement() * Tests the two forms of prepareStatement()
*/ */
public void testPrepareStatement() public void testPrepareStatement()
...@@ -100,13 +100,13 @@ public class ConnectionTest extends TestCase ...@@ -100,13 +100,13 @@ public class ConnectionTest extends TestCase
} }
} }
/** /*
* Put the test for createPrepareCall here * Put the test for createPrepareCall here
*/ */
public void testPrepareCall() public void testPrepareCall()
{} {}
/** /*
* Test nativeSQL * Test nativeSQL
*/ */
public void testNativeSQL() public void testNativeSQL()
...@@ -114,7 +114,7 @@ public class ConnectionTest extends TestCase ...@@ -114,7 +114,7 @@ public class ConnectionTest extends TestCase
// For now do nothing as it returns itself // For now do nothing as it returns itself
} }
/** /*
* Test autoCommit (both get & set) * Test autoCommit (both get & set)
*/ */
public void testTransactions() public void testTransactions()
...@@ -163,7 +163,7 @@ public class ConnectionTest extends TestCase ...@@ -163,7 +163,7 @@ public class ConnectionTest extends TestCase
} }
} }
/** /*
* Simple test to see if isClosed works. * Simple test to see if isClosed works.
*/ */
public void testIsClosed() public void testIsClosed()
...@@ -187,7 +187,7 @@ public class ConnectionTest extends TestCase ...@@ -187,7 +187,7 @@ public class ConnectionTest extends TestCase
} }
} }
/** /*
* Test the warnings system * Test the warnings system
*/ */
public void testWarnings() public void testWarnings()
...@@ -224,7 +224,7 @@ public class ConnectionTest extends TestCase ...@@ -224,7 +224,7 @@ public class ConnectionTest extends TestCase
} }
} }
/** /*
* Transaction Isolation Levels * Transaction Isolation Levels
*/ */
public void testTransactionIsolation() public void testTransactionIsolation()
...@@ -309,7 +309,7 @@ public class ConnectionTest extends TestCase ...@@ -309,7 +309,7 @@ public class ConnectionTest extends TestCase
} }
} }
/** /*
* JDBC2 Type mappings * JDBC2 Type mappings
*/ */
public void testTypeMaps() public void testTypeMaps()
......
...@@ -4,18 +4,18 @@ import org.postgresql.test.JDBC2Tests; ...@@ -4,18 +4,18 @@ import org.postgresql.test.JDBC2Tests;
import junit.framework.TestCase; import junit.framework.TestCase;
import java.sql.*; import java.sql.*;
/** /*
* TestCase to test the internal functionality of org.postgresql.jdbc2.DatabaseMetaData * TestCase to test the internal functionality of org.postgresql.jdbc2.DatabaseMetaData
* *
* PS: Do you know how difficult it is to type on a train? ;-) * PS: Do you know how difficult it is to type on a train? ;-)
* *
* $Id: DatabaseMetaDataTest.java,v 1.3 2001/10/25 05:59:59 momjian Exp $ * $Id: DatabaseMetaDataTest.java,v 1.4 2001/11/19 22:33:39 momjian Exp $
*/ */
public class DatabaseMetaDataTest extends TestCase public class DatabaseMetaDataTest extends TestCase
{ {
/** /*
* Constructor * Constructor
*/ */
public DatabaseMetaDataTest(String name) public DatabaseMetaDataTest(String name)
...@@ -23,7 +23,7 @@ public class DatabaseMetaDataTest extends TestCase ...@@ -23,7 +23,7 @@ public class DatabaseMetaDataTest extends TestCase
super(name); super(name);
} }
/** /*
* The spec says this may return null, but we always do! * The spec says this may return null, but we always do!
*/ */
public void testGetMetaData() public void testGetMetaData()
...@@ -43,7 +43,7 @@ public class DatabaseMetaDataTest extends TestCase ...@@ -43,7 +43,7 @@ public class DatabaseMetaDataTest extends TestCase
} }
} }
/** /*
* Test default capabilities * Test default capabilities
*/ */
public void testCapabilities() public void testCapabilities()
......
...@@ -4,8 +4,8 @@ import org.postgresql.test.JDBC2Tests; ...@@ -4,8 +4,8 @@ import org.postgresql.test.JDBC2Tests;
import junit.framework.TestCase; import junit.framework.TestCase;
import java.sql.*; import java.sql.*;
/** /*
* $Id: DateTest.java,v 1.3 2001/10/25 05:59:59 momjian Exp $ * $Id: DateTest.java,v 1.4 2001/11/19 22:33:39 momjian Exp $
* *
* Some simple tests based on problems reported by users. Hopefully these will * Some simple tests based on problems reported by users. Hopefully these will
* help prevent previous problems from re-occuring ;-) * help prevent previous problems from re-occuring ;-)
...@@ -33,7 +33,7 @@ public class DateTest extends TestCase ...@@ -33,7 +33,7 @@ public class DateTest extends TestCase
JDBC2Tests.closeDB(con); JDBC2Tests.closeDB(con);
} }
/** /*
* Tests the time methods in ResultSet * Tests the time methods in ResultSet
*/ */
public void testGetDate() public void testGetDate()
...@@ -59,7 +59,7 @@ public class DateTest extends TestCase ...@@ -59,7 +59,7 @@ public class DateTest extends TestCase
} }
} }
/** /*
* Tests the time methods in PreparedStatement * Tests the time methods in PreparedStatement
*/ */
public void testSetDate() public void testSetDate()
...@@ -95,7 +95,7 @@ public class DateTest extends TestCase ...@@ -95,7 +95,7 @@ public class DateTest extends TestCase
} }
} }
/** /*
* Helper for the date tests. It tests what should be in the db * Helper for the date tests. It tests what should be in the db
*/ */
private void dateTest() throws SQLException private void dateTest() throws SQLException
......
...@@ -4,8 +4,8 @@ import org.postgresql.test.JDBC2Tests; ...@@ -4,8 +4,8 @@ import org.postgresql.test.JDBC2Tests;
import junit.framework.TestCase; import junit.framework.TestCase;
import java.sql.*; import java.sql.*;
/** /*
* $Id: DriverTest.java,v 1.3 2001/10/25 05:59:59 momjian Exp $ * $Id: DriverTest.java,v 1.4 2001/11/19 22:33:39 momjian Exp $
* *
* Tests the dynamically created class org.postgresql.Driver * Tests the dynamically created class org.postgresql.Driver
* *
...@@ -18,7 +18,7 @@ public class DriverTest extends TestCase ...@@ -18,7 +18,7 @@ public class DriverTest extends TestCase
super(name); super(name);
} }
/** /*
* This tests the acceptsURL() method with a couple of good and badly formed * This tests the acceptsURL() method with a couple of good and badly formed
* jdbc urls * jdbc urls
*/ */
...@@ -49,10 +49,10 @@ public class DriverTest extends TestCase ...@@ -49,10 +49,10 @@ public class DriverTest extends TestCase
} }
} }
/** /*
* Tests parseURL (internal) * Tests parseURL (internal)
*/ */
/** /*
* Tests the connect method by connecting to the test database * Tests the connect method by connecting to the test database
*/ */
public void testConnect() public void testConnect()
......
...@@ -5,10 +5,10 @@ import junit.framework.*; ...@@ -5,10 +5,10 @@ import junit.framework.*;
import org.postgresql.core.Encoding; import org.postgresql.core.Encoding;
import java.io.*; import java.io.*;
/** /*
* Tests for the Encoding class. * Tests for the Encoding class.
* *
* $Id: EncodingTest.java,v 1.3 2001/10/25 05:59:59 momjian Exp $ * $Id: EncodingTest.java,v 1.4 2001/11/19 22:33:39 momjian Exp $
*/ */
......
...@@ -5,8 +5,8 @@ import junit.framework.TestCase; ...@@ -5,8 +5,8 @@ import junit.framework.TestCase;
import java.sql.*; import java.sql.*;
import java.math.BigDecimal; import java.math.BigDecimal;
/** /*
* $Id: JBuilderTest.java,v 1.4 2001/10/25 05:59:59 momjian Exp $ * $Id: JBuilderTest.java,v 1.5 2001/11/19 22:33:39 momjian Exp $
* *
* Some simple tests to check that the required components needed for JBuilder * Some simple tests to check that the required components needed for JBuilder
* stay working * stay working
...@@ -39,7 +39,7 @@ public class JBuilderTest extends TestCase ...@@ -39,7 +39,7 @@ public class JBuilderTest extends TestCase
JDBC2Tests.closeDB(con); JDBC2Tests.closeDB(con);
} }
/** /*
* This tests that Money types work. JDBCExplorer barfs if this fails. * This tests that Money types work. JDBCExplorer barfs if this fails.
*/ */
public void testMoney() public void testMoney()
......
...@@ -4,8 +4,8 @@ import org.postgresql.test.JDBC2Tests; ...@@ -4,8 +4,8 @@ import org.postgresql.test.JDBC2Tests;
import junit.framework.TestCase; import junit.framework.TestCase;
import java.sql.*; import java.sql.*;
/** /*
* $Id: MiscTest.java,v 1.3 2001/10/25 05:59:59 momjian Exp $ * $Id: MiscTest.java,v 1.4 2001/11/19 22:33:39 momjian Exp $
* *
* Some simple tests based on problems reported by users. Hopefully these will * Some simple tests based on problems reported by users. Hopefully these will
* help prevent previous problems from re-occuring ;-) * help prevent previous problems from re-occuring ;-)
...@@ -19,7 +19,7 @@ public class MiscTest extends TestCase ...@@ -19,7 +19,7 @@ public class MiscTest extends TestCase
super(name); super(name);
} }
/** /*
* Some versions of the driver would return rs as a null? * Some versions of the driver would return rs as a null?
* *
* Sasha <ber0806@iperbole.bologna.it> was having this problem. * Sasha <ber0806@iperbole.bologna.it> was having this problem.
......
...@@ -5,7 +5,7 @@ import junit.framework.TestCase; ...@@ -5,7 +5,7 @@ import junit.framework.TestCase;
import java.io.*; import java.io.*;
import java.sql.*; import java.sql.*;
/** /*
* ResultSet tests. * ResultSet tests.
*/ */
public class ResultSetTest extends TestCase public class ResultSetTest extends TestCase
......
...@@ -4,8 +4,8 @@ import org.postgresql.test.JDBC2Tests; ...@@ -4,8 +4,8 @@ import org.postgresql.test.JDBC2Tests;
import junit.framework.TestCase; import junit.framework.TestCase;
import java.sql.*; import java.sql.*;
/** /*
* $Id: TimeTest.java,v 1.3 2001/10/25 05:59:59 momjian Exp $ * $Id: TimeTest.java,v 1.4 2001/11/19 22:33:39 momjian Exp $
* *
* Some simple tests based on problems reported by users. Hopefully these will * Some simple tests based on problems reported by users. Hopefully these will
* help prevent previous problems from re-occuring ;-) * help prevent previous problems from re-occuring ;-)
...@@ -33,7 +33,7 @@ public class TimeTest extends TestCase ...@@ -33,7 +33,7 @@ public class TimeTest extends TestCase
JDBC2Tests.closeDB(con); JDBC2Tests.closeDB(con);
} }
/** /*
* Tests the time methods in ResultSet * Tests the time methods in ResultSet
*/ */
public void testGetTime() public void testGetTime()
...@@ -57,7 +57,7 @@ public class TimeTest extends TestCase ...@@ -57,7 +57,7 @@ public class TimeTest extends TestCase
} }
} }
/** /*
* Tests the time methods in PreparedStatement * Tests the time methods in PreparedStatement
*/ */
public void testSetTime() public void testSetTime()
...@@ -86,7 +86,7 @@ public class TimeTest extends TestCase ...@@ -86,7 +86,7 @@ public class TimeTest extends TestCase
} }
} }
/** /*
* Helper for the TimeTests. It tests what should be in the db * Helper for the TimeTests. It tests what should be in the db
*/ */
private void timeTest() throws SQLException private void timeTest() throws SQLException
......
...@@ -4,8 +4,8 @@ import org.postgresql.test.JDBC2Tests; ...@@ -4,8 +4,8 @@ import org.postgresql.test.JDBC2Tests;
import junit.framework.TestCase; import junit.framework.TestCase;
import java.sql.*; import java.sql.*;
/** /*
* $Id: TimestampTest.java,v 1.5 2001/10/25 05:59:59 momjian Exp $ * $Id: TimestampTest.java,v 1.6 2001/11/19 22:33:39 momjian Exp $
* *
* This has been the most controversial pair of methods since 6.5 was released! * This has been the most controversial pair of methods since 6.5 was released!
* *
...@@ -37,7 +37,7 @@ public class TimestampTest extends TestCase ...@@ -37,7 +37,7 @@ public class TimestampTest extends TestCase
JDBC2Tests.closeDB(con); JDBC2Tests.closeDB(con);
} }
/** /*
* Tests the time methods in ResultSet * Tests the time methods in ResultSet
*/ */
public void testGetTimestamp() public void testGetTimestamp()
...@@ -69,7 +69,7 @@ public class TimestampTest extends TestCase ...@@ -69,7 +69,7 @@ public class TimestampTest extends TestCase
} }
} }
/** /*
* Tests the time methods in PreparedStatement * Tests the time methods in PreparedStatement
*/ */
public void testSetTimestamp() public void testSetTimestamp()
...@@ -102,7 +102,7 @@ public class TimestampTest extends TestCase ...@@ -102,7 +102,7 @@ public class TimestampTest extends TestCase
} }
} }
/** /*
* Helper for the TimeTests. It tests what should be in the db * Helper for the TimeTests. It tests what should be in the db
*/ */
private void timestampTest() throws SQLException private void timestampTest() throws SQLException
......
package org.postgresql.util; package org.postgresql.util;
/** /*
* MD5-based utility function to obfuscate passwords before network transmission * MD5-based utility function to obfuscate passwords before network transmission
* *
* @author Jeremy Wohl * @author Jeremy Wohl
...@@ -11,63 +11,70 @@ import java.security.*; ...@@ -11,63 +11,70 @@ import java.security.*;
public class MD5Digest public class MD5Digest
{ {
private MD5Digest() {} private MD5Digest()
{}
/** /*
* Encodes user/password/salt information in the following way: * Encodes user/password/salt information in the following way:
* MD5(MD5(password + user) + salt) * MD5(MD5(password + user) + salt)
* *
* @param user The connecting user. * @param user The connecting user.
* @param password The connecting user's password. * @param password The connecting user's password.
* @param salt A four-character string sent by the server. * @param salt A four-character string sent by the server.
* *
* @return A 35-byte array, comprising the string "md5", followed by an MD5 digest. * @return A 35-byte array, comprising the string "md5", followed by an MD5 digest.
*/ */
public static byte[] encode(String user, String password, String salt) public static byte[] encode(String user, String password, String salt)
{ {
MessageDigest md; MessageDigest md;
byte[] temp_digest, pass_digest; byte[] temp_digest, pass_digest;
byte[] hex_digest = new byte[35]; byte[] hex_digest = new byte[35];
try { try
md = MessageDigest.getInstance("MD5"); {
md = MessageDigest.getInstance("MD5");
md.update(password.getBytes()); md.update(password.getBytes());
md.update(user.getBytes()); md.update(user.getBytes());
temp_digest = md.digest(); temp_digest = md.digest();
bytesToHex(temp_digest, hex_digest, 0); bytesToHex(temp_digest, hex_digest, 0);
md.update(hex_digest, 0, 32); md.update(hex_digest, 0, 32);
md.update(salt.getBytes()); md.update(salt.getBytes());
pass_digest = md.digest(); pass_digest = md.digest();
bytesToHex(pass_digest, hex_digest, 3); bytesToHex(pass_digest, hex_digest, 3);
hex_digest[0] = (byte) 'm'; hex_digest[1] = (byte) 'd'; hex_digest[2] = (byte) '5'; hex_digest[0] = (byte) 'm';
} catch (Exception e) { hex_digest[1] = (byte) 'd';
; // "MessageDigest failure; " + e hex_digest[2] = (byte) '5';
}
catch (Exception e)
{
; // "MessageDigest failure; " + e
}
return hex_digest;
} }
return hex_digest;
}
/*
* Turn 16-byte stream into a human-readable 32-byte hex string
*/
private static void bytesToHex(byte[] bytes, byte[] hex, int offset)
{
final char lookup[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
int i, c, j, pos = offset;
/** for (i = 0; i < 16; i++)
* Turn 16-byte stream into a human-readable 32-byte hex string {
*/ c = bytes[i] & 0xFF;
private static void bytesToHex(byte[] bytes, byte[] hex, int offset) j = c >> 4;
{ hex[pos++] = (byte) lookup[j];
final char lookup[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', j = (c & 0xF);
'a', 'b', 'c', 'd', 'e', 'f' }; hex[pos++] = (byte) lookup[j];
}
int i, c, j, pos = offset;
for (i = 0; i < 16; i++) {
c = bytes[i] & 0xFF; j = c >> 4;
hex[pos++] = (byte) lookup[j];
j = (c & 0xF);
hex[pos++] = (byte) lookup[j];
} }
}
} }
...@@ -3,7 +3,7 @@ package org.postgresql.util; ...@@ -3,7 +3,7 @@ package org.postgresql.util;
import java.util.*; import java.util.*;
import java.text.*; import java.text.*;
/** /*
* A singleton class to translate JDBC driver messages in SQLException's. * A singleton class to translate JDBC driver messages in SQLException's.
*/ */
public class MessageTranslator public class MessageTranslator
......
...@@ -2,16 +2,16 @@ package org.postgresql.util; ...@@ -2,16 +2,16 @@ package org.postgresql.util;
import java.sql.*; import java.sql.*;
/** /*
* Converts to and from the postgresql bytea datatype used by the backend. * Converts to and from the postgresql bytea datatype used by the backend.
* *
* $Id: PGbytea.java,v 1.2 2001/10/25 06:00:00 momjian Exp $ * $Id: PGbytea.java,v 1.3 2001/11/19 22:33:39 momjian Exp $
*/ */
public class PGbytea public class PGbytea
{ {
/** /*
* Converts a PG bytea string (i.e. the text representation * Converts a PG bytea string (i.e. the text representation
* of the bytea data type) into a java byte[] * of the bytea data type) into a java byte[]
*/ */
...@@ -54,7 +54,7 @@ public class PGbytea ...@@ -54,7 +54,7 @@ public class PGbytea
return l_return; return l_return;
} }
/** /*
* Converts a java byte[] into a PG bytea string (i.e. the text * Converts a java byte[] into a PG bytea string (i.e. the text
* representation of the bytea data type) * representation of the bytea data type)
*/ */
......
...@@ -3,17 +3,17 @@ package org.postgresql.util; ...@@ -3,17 +3,17 @@ package org.postgresql.util;
import java.io.*; import java.io.*;
import java.sql.*; import java.sql.*;
/** /*
* This implements a class that handles the PostgreSQL money and cash types * This implements a class that handles the PostgreSQL money and cash types
*/ */
public class PGmoney extends PGobject implements Serializable, Cloneable public class PGmoney extends PGobject implements Serializable, Cloneable
{ {
/** /*
* The value of the field * The value of the field
*/ */
public double val; public double val;
/** /*
* @param value of field * @param value of field
*/ */
public PGmoney(double value) public PGmoney(double value)
...@@ -22,7 +22,7 @@ public class PGmoney extends PGobject implements Serializable, Cloneable ...@@ -22,7 +22,7 @@ public class PGmoney extends PGobject implements Serializable, Cloneable
val = value; val = value;
} }
/** /*
* This is called mainly from the other geometric types, when a * This is called mainly from the other geometric types, when a
* point is imbeded within their definition. * point is imbeded within their definition.
* *
...@@ -34,7 +34,7 @@ public class PGmoney extends PGobject implements Serializable, Cloneable ...@@ -34,7 +34,7 @@ public class PGmoney extends PGobject implements Serializable, Cloneable
setValue(value); setValue(value);
} }
/** /*
* Required by the driver * Required by the driver
*/ */
public PGmoney() public PGmoney()
...@@ -42,7 +42,7 @@ public class PGmoney extends PGobject implements Serializable, Cloneable ...@@ -42,7 +42,7 @@ public class PGmoney extends PGobject implements Serializable, Cloneable
setType("money"); setType("money");
} }
/** /*
* @param s Definition of this point in PostgreSQL's syntax * @param s Definition of this point in PostgreSQL's syntax
* @exception SQLException on conversion failure * @exception SQLException on conversion failure
*/ */
...@@ -76,7 +76,7 @@ public class PGmoney extends PGobject implements Serializable, Cloneable ...@@ -76,7 +76,7 @@ public class PGmoney extends PGobject implements Serializable, Cloneable
} }
} }
/** /*
* @param obj Object to compare with * @param obj Object to compare with
* @return true if the two boxes are identical * @return true if the two boxes are identical
*/ */
...@@ -90,7 +90,7 @@ public class PGmoney extends PGobject implements Serializable, Cloneable ...@@ -90,7 +90,7 @@ public class PGmoney extends PGobject implements Serializable, Cloneable
return false; return false;
} }
/** /*
* This must be overidden to allow the object to be cloned * This must be overidden to allow the object to be cloned
*/ */
public Object clone() public Object clone()
...@@ -98,7 +98,7 @@ public class PGmoney extends PGobject implements Serializable, Cloneable ...@@ -98,7 +98,7 @@ public class PGmoney extends PGobject implements Serializable, Cloneable
return new PGmoney(val); return new PGmoney(val);
} }
/** /*
* @return the PGpoint in the syntax expected by org.postgresql * @return the PGpoint in the syntax expected by org.postgresql
*/ */
public String getValue() public String getValue()
......
...@@ -5,7 +5,7 @@ import java.lang.*; ...@@ -5,7 +5,7 @@ import java.lang.*;
import java.sql.*; import java.sql.*;
import java.util.*; import java.util.*;
/** /*
* org.postgresql.PG_Object is a class used to describe unknown types * org.postgresql.PG_Object is a class used to describe unknown types
* An unknown type is any type that is unknown by JDBC Standards * An unknown type is any type that is unknown by JDBC Standards
* *
...@@ -18,14 +18,14 @@ public class PGobject implements Serializable, Cloneable ...@@ -18,14 +18,14 @@ public class PGobject implements Serializable, Cloneable
protected String type; protected String type;
protected String value; protected String value;
/** /*
* This is called by org.postgresql.Connection.getObject() to create the * This is called by org.postgresql.Connection.getObject() to create the
* object. * object.
*/ */
public PGobject() public PGobject()
{} {}
/** /*
* This method sets the type of this object. * This method sets the type of this object.
* *
* <p>It should not be extended by subclasses, hence its final * <p>It should not be extended by subclasses, hence its final
...@@ -37,7 +37,7 @@ public class PGobject implements Serializable, Cloneable ...@@ -37,7 +37,7 @@ public class PGobject implements Serializable, Cloneable
this.type = type; this.type = type;
} }
/** /*
* This method sets the value of this object. It must be overidden. * This method sets the value of this object. It must be overidden.
* *
* @param value a string representation of the value of the object * @param value a string representation of the value of the object
...@@ -48,7 +48,7 @@ public class PGobject implements Serializable, Cloneable ...@@ -48,7 +48,7 @@ public class PGobject implements Serializable, Cloneable
this.value = value; this.value = value;
} }
/** /*
* As this cannot change during the life of the object, it's final. * As this cannot change during the life of the object, it's final.
* @return the type name of this object * @return the type name of this object
*/ */
...@@ -57,7 +57,7 @@ public class PGobject implements Serializable, Cloneable ...@@ -57,7 +57,7 @@ public class PGobject implements Serializable, Cloneable
return type; return type;
} }
/** /*
* This must be overidden, to return the value of the object, in the * This must be overidden, to return the value of the object, in the
* form required by org.postgresql. * form required by org.postgresql.
* @return the value of this object * @return the value of this object
...@@ -67,7 +67,7 @@ public class PGobject implements Serializable, Cloneable ...@@ -67,7 +67,7 @@ public class PGobject implements Serializable, Cloneable
return value; return value;
} }
/** /*
* This must be overidden to allow comparisons of objects * This must be overidden to allow comparisons of objects
* @param obj Object to compare with * @param obj Object to compare with
* @return true if the two boxes are identical * @return true if the two boxes are identical
...@@ -79,7 +79,7 @@ public class PGobject implements Serializable, Cloneable ...@@ -79,7 +79,7 @@ public class PGobject implements Serializable, Cloneable
return false; return false;
} }
/** /*
* This must be overidden to allow the object to be cloned * This must be overidden to allow the object to be cloned
*/ */
public Object clone() public Object clone()
...@@ -90,7 +90,7 @@ public class PGobject implements Serializable, Cloneable ...@@ -90,7 +90,7 @@ public class PGobject implements Serializable, Cloneable
return obj; return obj;
} }
/** /*
* This is defined here, so user code need not overide it. * This is defined here, so user code need not overide it.
* @return the value of this object, in the syntax expected by org.postgresql * @return the value of this object, in the syntax expected by org.postgresql
*/ */
......
...@@ -3,7 +3,7 @@ package org.postgresql.util; ...@@ -3,7 +3,7 @@ package org.postgresql.util;
import java.sql.*; import java.sql.*;
import java.util.*; import java.util.*;
/** /*
* This class is used to tokenize the text output of org.postgres. * This class is used to tokenize the text output of org.postgres.
* *
* <p>It's mainly used by the geometric classes, but is useful in parsing any * <p>It's mainly used by the geometric classes, but is useful in parsing any
...@@ -21,7 +21,7 @@ public class PGtokenizer ...@@ -21,7 +21,7 @@ public class PGtokenizer
// Our tokens // Our tokens
protected Vector tokens; protected Vector tokens;
/** /*
* Create a tokeniser. * Create a tokeniser.
* *
* <p>We could have used StringTokenizer to do this, however, we needed to * <p>We could have used StringTokenizer to do this, however, we needed to
...@@ -36,7 +36,7 @@ public class PGtokenizer ...@@ -36,7 +36,7 @@ public class PGtokenizer
tokenize(string, delim); tokenize(string, delim);
} }
/** /*
* This resets this tokenizer with a new string and/or delimiter. * This resets this tokenizer with a new string and/or delimiter.
* *
* @param string containing tokens * @param string containing tokens
...@@ -83,7 +83,7 @@ public class PGtokenizer ...@@ -83,7 +83,7 @@ public class PGtokenizer
return tokens.size(); return tokens.size();
} }
/** /*
* @return the number of tokens available * @return the number of tokens available
*/ */
public int getSize() public int getSize()
...@@ -91,7 +91,7 @@ public class PGtokenizer ...@@ -91,7 +91,7 @@ public class PGtokenizer
return tokens.size(); return tokens.size();
} }
/** /*
* @param n Token number ( 0 ... getSize()-1 ) * @param n Token number ( 0 ... getSize()-1 )
* @return The token value * @return The token value
*/ */
...@@ -100,7 +100,7 @@ public class PGtokenizer ...@@ -100,7 +100,7 @@ public class PGtokenizer
return (String)tokens.elementAt(n); return (String)tokens.elementAt(n);
} }
/** /*
* This returns a new tokenizer based on one of our tokens. * This returns a new tokenizer based on one of our tokens.
* *
* The geometric datatypes use this to process nested tokens (usually * The geometric datatypes use this to process nested tokens (usually
...@@ -115,7 +115,7 @@ public class PGtokenizer ...@@ -115,7 +115,7 @@ public class PGtokenizer
return new PGtokenizer(getToken(n), delim); return new PGtokenizer(getToken(n), delim);
} }
/** /*
* This removes the lead/trailing strings from a string * This removes the lead/trailing strings from a string
* @param s Source string * @param s Source string
* @param l Leading string to remove * @param l Leading string to remove
...@@ -131,7 +131,7 @@ public class PGtokenizer ...@@ -131,7 +131,7 @@ public class PGtokenizer
return s; return s;
} }
/** /*
* This removes the lead/trailing strings from all tokens * This removes the lead/trailing strings from all tokens
* @param l Leading string to remove * @param l Leading string to remove
* @param t Trailing string to remove * @param t Trailing string to remove
...@@ -144,7 +144,7 @@ public class PGtokenizer ...@@ -144,7 +144,7 @@ public class PGtokenizer
} }
} }
/** /*
* Removes ( and ) from the beginning and end of a string * Removes ( and ) from the beginning and end of a string
* @param s String to remove from * @param s String to remove from
* @return String without the ( or ) * @return String without the ( or )
...@@ -154,7 +154,7 @@ public class PGtokenizer ...@@ -154,7 +154,7 @@ public class PGtokenizer
return remove(s, "(", ")"); return remove(s, "(", ")");
} }
/** /*
* Removes ( and ) from the beginning and end of all tokens * Removes ( and ) from the beginning and end of all tokens
* @return String without the ( or ) * @return String without the ( or )
*/ */
...@@ -163,7 +163,7 @@ public class PGtokenizer ...@@ -163,7 +163,7 @@ public class PGtokenizer
remove("(", ")"); remove("(", ")");
} }
/** /*
* Removes [ and ] from the beginning and end of a string * Removes [ and ] from the beginning and end of a string
* @param s String to remove from * @param s String to remove from
* @return String without the [ or ] * @return String without the [ or ]
...@@ -173,7 +173,7 @@ public class PGtokenizer ...@@ -173,7 +173,7 @@ public class PGtokenizer
return remove(s, "[", "]"); return remove(s, "[", "]");
} }
/** /*
* Removes [ and ] from the beginning and end of all tokens * Removes [ and ] from the beginning and end of all tokens
* @return String without the [ or ] * @return String without the [ or ]
*/ */
...@@ -182,7 +182,7 @@ public class PGtokenizer ...@@ -182,7 +182,7 @@ public class PGtokenizer
remove("[", "]"); remove("[", "]");
} }
/** /*
* Removes &lt; and &gt; from the beginning and end of a string * Removes &lt; and &gt; from the beginning and end of a string
* @param s String to remove from * @param s String to remove from
* @return String without the &lt; or &gt; * @return String without the &lt; or &gt;
...@@ -192,7 +192,7 @@ public class PGtokenizer ...@@ -192,7 +192,7 @@ public class PGtokenizer
return remove(s, "<", ">"); return remove(s, "<", ">");
} }
/** /*
* Removes &lt; and &gt; from the beginning and end of all tokens * Removes &lt; and &gt; from the beginning and end of all tokens
* @return String without the &lt; or &gt; * @return String without the &lt; or &gt;
*/ */
......
...@@ -3,14 +3,14 @@ package org.postgresql.util; ...@@ -3,14 +3,14 @@ package org.postgresql.util;
import java.io.*; import java.io.*;
import java.sql.*; import java.sql.*;
/** /*
* This class extends SQLException, and provides our internationalisation handling * This class extends SQLException, and provides our internationalisation handling
*/ */
public class PSQLException extends SQLException public class PSQLException extends SQLException
{ {
private String message; private String message;
/** /*
* This provides the same functionality to SQLException * This provides the same functionality to SQLException
* @param error Error string * @param error Error string
*/ */
...@@ -20,7 +20,7 @@ public class PSQLException extends SQLException ...@@ -20,7 +20,7 @@ public class PSQLException extends SQLException
translate(error, null); translate(error, null);
} }
/** /*
* A more generic entry point. * A more generic entry point.
* @param error Error string or standard message id * @param error Error string or standard message id
* @param args Array of arguments * @param args Array of arguments
...@@ -31,7 +31,7 @@ public class PSQLException extends SQLException ...@@ -31,7 +31,7 @@ public class PSQLException extends SQLException
translate(error, args); translate(error, args);
} }
/** /*
* Helper version for 1 arg * Helper version for 1 arg
*/ */
public PSQLException(String error, Object arg) public PSQLException(String error, Object arg)
...@@ -42,7 +42,7 @@ public class PSQLException extends SQLException ...@@ -42,7 +42,7 @@ public class PSQLException extends SQLException
translate(error, argv); translate(error, argv);
} }
/** /*
* Helper version for 1 arg. This is used for debug purposes only with * Helper version for 1 arg. This is used for debug purposes only with
* some unusual Exception's. It allows the originiating Exceptions stack * some unusual Exception's. It allows the originiating Exceptions stack
* trace to be returned. * trace to be returned.
...@@ -73,7 +73,7 @@ public class PSQLException extends SQLException ...@@ -73,7 +73,7 @@ public class PSQLException extends SQLException
translate(error, argv); translate(error, argv);
} }
/** /*
* Helper version for 2 args * Helper version for 2 args
*/ */
public PSQLException(String error, Object arg1, Object arg2) public PSQLException(String error, Object arg1, Object arg2)
...@@ -90,7 +90,7 @@ public class PSQLException extends SQLException ...@@ -90,7 +90,7 @@ public class PSQLException extends SQLException
message = MessageTranslator.translate(error, args); message = MessageTranslator.translate(error, args);
} }
/** /*
* Overides Throwable * Overides Throwable
*/ */
public String getLocalizedMessage() public String getLocalizedMessage()
...@@ -98,7 +98,7 @@ public class PSQLException extends SQLException ...@@ -98,7 +98,7 @@ public class PSQLException extends SQLException
return message; return message;
} }
/** /*
* Overides Throwable * Overides Throwable
*/ */
public String getMessage() public String getMessage()
...@@ -106,7 +106,7 @@ public class PSQLException extends SQLException ...@@ -106,7 +106,7 @@ public class PSQLException extends SQLException
return message; return message;
} }
/** /*
* Overides Object * Overides Object
*/ */
public String toString() public String toString()
......
...@@ -7,7 +7,7 @@ import java.net.*; ...@@ -7,7 +7,7 @@ import java.net.*;
import java.util.*; import java.util.*;
import java.sql.*; import java.sql.*;
/** /*
* This class uses PostgreSQL's object oriented features to store Java Objects.<p> * This class uses PostgreSQL's object oriented features to store Java Objects.<p>
* *
* It does this by mapping a Java Class name to a table in the database. Each * It does this by mapping a Java Class name to a table in the database. Each
...@@ -119,7 +119,7 @@ public class Serialize ...@@ -119,7 +119,7 @@ public class Serialize
// This is the Class for this serialzed object // This is the Class for this serialzed object
protected Class ourClass; protected Class ourClass;
/** /*
* This creates an instance that can be used to serialize or deserialize * This creates an instance that can be used to serialize or deserialize
* a Java object from a PostgreSQL table. * a Java object from a PostgreSQL table.
*/ */
...@@ -160,7 +160,7 @@ public class Serialize ...@@ -160,7 +160,7 @@ public class Serialize
// Finally cache the fields within the table // Finally cache the fields within the table
} }
/** /*
* Constructor when Object is passed in * Constructor when Object is passed in
*/ */
public Serialize(org.postgresql.Connection c, Object o) throws SQLException public Serialize(org.postgresql.Connection c, Object o) throws SQLException
...@@ -168,7 +168,7 @@ public class Serialize ...@@ -168,7 +168,7 @@ public class Serialize
this(c, o.getClass().getName()); this(c, o.getClass().getName());
} }
/** /*
* Constructor when Class is passed in * Constructor when Class is passed in
*/ */
public Serialize(org.postgresql.Connection c, Class cls) throws SQLException public Serialize(org.postgresql.Connection c, Class cls) throws SQLException
...@@ -176,7 +176,7 @@ public class Serialize ...@@ -176,7 +176,7 @@ public class Serialize
this(c, cls.getName()); this(c, cls.getName());
} }
/** /*
* This fetches an object from a table, given it's OID * This fetches an object from a table, given it's OID
* @param oid The oid of the object * @param oid The oid of the object
* @return Object relating to oid * @return Object relating to oid
...@@ -267,7 +267,7 @@ public class Serialize ...@@ -267,7 +267,7 @@ public class Serialize
} }
} }
/** /*
* This stores an object into a table, returning it's OID.<p> * This stores an object into a table, returning it's OID.<p>
* *
* If the object has an int called OID, and it is > 0, then * If the object has an int called OID, and it is > 0, then
...@@ -406,7 +406,7 @@ public class Serialize ...@@ -406,7 +406,7 @@ public class Serialize
} }
} }
/** /*
* Escape literal single quote and backslashes embedded in strings/chars. * Escape literal single quote and backslashes embedded in strings/chars.
* Otherwise, postgres will bomb on the single quote and remove the * Otherwise, postgres will bomb on the single quote and remove the
* the backslashes. * the backslashes.
...@@ -451,7 +451,7 @@ public class Serialize ...@@ -451,7 +451,7 @@ public class Serialize
return s; return s;
} }
/** /*
* This method is not used by the driver, but it creates a table, given * This method is not used by the driver, but it creates a table, given
* a Serializable Java Object. It should be used before serializing any * a Serializable Java Object. It should be used before serializing any
* objects. * objects.
...@@ -464,7 +464,7 @@ public class Serialize ...@@ -464,7 +464,7 @@ public class Serialize
create(con, o.getClass()); create(con, o.getClass());
} }
/** /*
* This method is not used by the driver, but it creates a table, given * This method is not used by the driver, but it creates a table, given
* a Serializable Java Object. It should be used before serializing any * a Serializable Java Object. It should be used before serializing any
* objects. * objects.
...@@ -558,7 +558,7 @@ public class Serialize ...@@ -558,7 +558,7 @@ public class Serialize
{"byte", "int2"} {"byte", "int2"}
}; };
/** /*
* This converts a Java Class name to a org.postgresql table, by replacing . with * This converts a Java Class name to a org.postgresql table, by replacing . with
* _<p> * _<p>
* *
...@@ -593,7 +593,7 @@ public class Serialize ...@@ -593,7 +593,7 @@ public class Serialize
} }
/** /*
* This converts a org.postgresql table to a Java Class name, by replacing _ with * This converts a org.postgresql table to a Java Class name, by replacing _ with
* .<p> * .<p>
* *
......
package org.postgresql.util; package org.postgresql.util;
/** /*
* This class provides us with the ability to encrypt passwords when sent * This class provides us with the ability to encrypt passwords when sent
* over the network stream * over the network stream
* *
...@@ -576,7 +576,7 @@ public class UnixCrypt extends Object ...@@ -576,7 +576,7 @@ public class UnixCrypt extends Object
return (out); return (out);
} }
/** /*
* <P>Encrypt a password given the cleartext password and a "salt".</P> * <P>Encrypt a password given the cleartext password and a "salt".</P>
* @param salt A two-character string representing the salt used to * @param salt A two-character string representing the salt used to
* iterate the encryption engine in lots of different ways. If you * iterate the encryption engine in lots of different ways. If you
...@@ -645,7 +645,7 @@ public class UnixCrypt extends Object ...@@ -645,7 +645,7 @@ public class UnixCrypt extends Object
return (buffer.toString()); return (buffer.toString());
} }
/** /*
* <P>Encrypt a password given the cleartext password. This method * <P>Encrypt a password given the cleartext password. This method
* generates a random salt using the 'java.util.Random' class.</P> * generates a random salt using the 'java.util.Random' class.</P>
* @param original The password to be encrypted. * @param original The password to be encrypted.
...@@ -663,7 +663,7 @@ public class UnixCrypt extends Object ...@@ -663,7 +663,7 @@ public class UnixCrypt extends Object
return crypt(salt, original); return crypt(salt, original);
} }
/** /*
* <P>Check that <I>enteredPassword</I> encrypts to * <P>Check that <I>enteredPassword</I> encrypts to
* <I>encryptedPassword</I>.</P> * <I>encryptedPassword</I>.</P>
* @param encryptedPassword The <I>encryptedPassword</I>. The first * @param encryptedPassword The <I>encryptedPassword</I>. The first
......
/** /*
* Redistribution and use of this software and associated documentation * Redistribution and use of this software and associated documentation
* ("Software"), with or without modification, are permitted provided * ("Software"), with or without modification, are permitted provided
* that the following conditions are met: * that the following conditions are met:
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
* *
* Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved. * Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved.
* *
* $Id: ClientConnection.java,v 1.2 2001/10/25 06:00:05 momjian Exp $ * $Id: ClientConnection.java,v 1.3 2001/11/19 22:33:39 momjian Exp $
*/ */
...@@ -51,7 +51,7 @@ import java.util.*; ...@@ -51,7 +51,7 @@ import java.util.*;
import java.sql.*; import java.sql.*;
/** /*
* Encapsulates an application's view of an XA/pooled connection. * Encapsulates an application's view of an XA/pooled connection.
* The XA connection is managed by the application server through it's * The XA connection is managed by the application server through it's
* {@link javax.sql.XAConnection} interface. The underlying JDBC * {@link javax.sql.XAConnection} interface. The underlying JDBC
...@@ -72,14 +72,14 @@ final class ClientConnection ...@@ -72,14 +72,14 @@ final class ClientConnection
{ {
/** /*
* The pooled XA connection that created this client connection * The pooled XA connection that created this client connection
* and should be used to report closure and fatal errors. * and should be used to report closure and fatal errors.
*/ */
private XAConnectionImpl _xaConn; private XAConnectionImpl _xaConn;
/** /*
* This identifier was handed on to use when we were created by * This identifier was handed on to use when we were created by
* {@link XAConnection}. If since then the XA connection was asked * {@link XAConnection}. If since then the XA connection was asked
* to create another connection or was closed, our identifier will * to create another connection or was closed, our identifier will
...@@ -94,7 +94,7 @@ final class ClientConnection ...@@ -94,7 +94,7 @@ final class ClientConnection
/** /*
* Construct a new client connection to provide access to the * Construct a new client connection to provide access to the
* underlying JDBC connection (<tt>underlying</tt>) on behalf of * underlying JDBC connection (<tt>underlying</tt>) on behalf of
* an XA/pooled connection (<tt>xaConn<tt/>). The pooled connection * an XA/pooled connection (<tt>xaConn<tt/>). The pooled connection
...@@ -483,7 +483,7 @@ final class ClientConnection ...@@ -483,7 +483,7 @@ final class ClientConnection
} }
/** /*
* Called by {@link XAConnectionImpl} to terminate this connection * Called by {@link XAConnectionImpl} to terminate this connection
* by dissociating it from the underlying JDBC connection. * by dissociating it from the underlying JDBC connection.
* The application would call {@link #close} but {@link * The application would call {@link #close} but {@link
...@@ -520,7 +520,7 @@ final class ClientConnection ...@@ -520,7 +520,7 @@ final class ClientConnection
} }
/** /*
* Called when an exception is thrown by the underlying connection * Called when an exception is thrown by the underlying connection
* to determine whether the exception is critical or not. If the * to determine whether the exception is critical or not. If the
* exception is critical, notifies the XA connection to forget * exception is critical, notifies the XA connection to forget
...@@ -536,7 +536,7 @@ final class ClientConnection ...@@ -536,7 +536,7 @@ final class ClientConnection
} }
/** /*
* Called to retrieve the underlying JDBC connection. Actual JDBC * Called to retrieve the underlying JDBC connection. Actual JDBC
* operations are performed against it. Throws an SQLException if * operations are performed against it. Throws an SQLException if
* this connection has been closed. * this connection has been closed.
......
/** /*
* Redistribution and use of this software and associated documentation * Redistribution and use of this software and associated documentation
* ("Software"), with or without modification, are permitted provided * ("Software"), with or without modification, are permitted provided
* that the following conditions are met: * that the following conditions are met:
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
* *
* Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved. * Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved.
* *
* $Id: TwoPhaseConnection.java,v 1.2 2001/10/25 06:00:05 momjian Exp $ * $Id: TwoPhaseConnection.java,v 1.3 2001/11/19 22:33:39 momjian Exp $
*/ */
...@@ -50,7 +50,7 @@ package org.postgresql.xa; ...@@ -50,7 +50,7 @@ package org.postgresql.xa;
import java.sql.SQLException; import java.sql.SQLException;
/** /*
* Defines two-phase commit support for a JDBC connection used by * Defines two-phase commit support for a JDBC connection used by
* {@link XAConnection}. A JDBC connection that can implement any of * {@link XAConnection}. A JDBC connection that can implement any of
* these features should extend this interface and attempt to * these features should extend this interface and attempt to
...@@ -79,7 +79,7 @@ public interface TwoPhaseConnection ...@@ -79,7 +79,7 @@ public interface TwoPhaseConnection
{ {
/** /*
* Enables or disables transaction demarcation through SQL commit * Enables or disables transaction demarcation through SQL commit
* and rollback. When the connection falls under control of * and rollback. When the connection falls under control of
* {@link XAConnection}, SQL commit/rollback commands will be * {@link XAConnection}, SQL commit/rollback commands will be
...@@ -90,7 +90,7 @@ public interface TwoPhaseConnection ...@@ -90,7 +90,7 @@ public interface TwoPhaseConnection
public void enableSQLTransactions( boolean flag ); public void enableSQLTransactions( boolean flag );
/** /*
* Called to prepare the transaction for commit. Returns true if * Called to prepare the transaction for commit. Returns true if
* the transaction is prepared, false if the transaction is * the transaction is prepared, false if the transaction is
* read-only. If the transaction has been marked for rollback, * read-only. If the transaction has been marked for rollback,
...@@ -104,7 +104,7 @@ public interface TwoPhaseConnection ...@@ -104,7 +104,7 @@ public interface TwoPhaseConnection
throws SQLException; throws SQLException;
/** /*
* Returns true if the error issued by this connection is a * Returns true if the error issued by this connection is a
* critical error and the connection should be terminated. * critical error and the connection should be terminated.
* *
......
/** /*
* Redistribution and use of this software and associated documentation * Redistribution and use of this software and associated documentation
* ("Software"), with or without modification, are permitted provided * ("Software"), with or without modification, are permitted provided
* that the following conditions are met: * that the following conditions are met:
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
* *
* Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved. * Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved.
* *
* $Id: TxConnection.java,v 1.2 2001/10/25 06:00:05 momjian Exp $ * $Id: TxConnection.java,v 1.3 2001/11/19 22:33:39 momjian Exp $
*/ */
...@@ -51,7 +51,7 @@ import java.sql.Connection; ...@@ -51,7 +51,7 @@ import java.sql.Connection;
import javax.transaction.xa.Xid; import javax.transaction.xa.Xid;
/** /*
* Describes an open connection associated with a transaction. When a * Describes an open connection associated with a transaction. When a
* transaction is opened for a connection, this record is created for * transaction is opened for a connection, this record is created for
* the connection. It indicates the underlying JDBC connection and * the connection. It indicates the underlying JDBC connection and
...@@ -68,14 +68,14 @@ final class TxConnection ...@@ -68,14 +68,14 @@ final class TxConnection
{ {
/** /*
* The Xid of the transactions. Connections that are not * The Xid of the transactions. Connections that are not
* associated with a transaction are not represented here. * associated with a transaction are not represented here.
*/ */
Xid xid; Xid xid;
/** /*
* Holds the underlying JDBC connection for as long as this * Holds the underlying JDBC connection for as long as this
* connection is useable. If the connection has been rolled back, * connection is useable. If the connection has been rolled back,
* timed out or had any other error, this variable will null * timed out or had any other error, this variable will null
...@@ -85,7 +85,7 @@ final class TxConnection ...@@ -85,7 +85,7 @@ final class TxConnection
/** /*
* Indicates the clock time (in ms) when the transaction should * Indicates the clock time (in ms) when the transaction should
* time out. The transaction times out when * time out. The transaction times out when
* <tt>System.currentTimeMillis() > timeout</tt>. * <tt>System.currentTimeMillis() > timeout</tt>.
...@@ -93,32 +93,32 @@ final class TxConnection ...@@ -93,32 +93,32 @@ final class TxConnection
long timeout; long timeout;
/** /*
* Indicates the clock time (in ms) when the transaction started. * Indicates the clock time (in ms) when the transaction started.
*/ */
long started; long started;
/** /*
* Reference counter indicates how many XA connections share this * Reference counter indicates how many XA connections share this
* underlying connection and transaction. Always one or more. * underlying connection and transaction. Always one or more.
*/ */
int count; int count;
/** /*
* True if the transaction has failed due to time out. * True if the transaction has failed due to time out.
*/ */
boolean timedOut; boolean timedOut;
/** /*
* True if the transaction has already been prepared. * True if the transaction has already been prepared.
*/ */
boolean prepared; boolean prepared;
/** /*
* True if the transaction has been prepared and found out to be * True if the transaction has been prepared and found out to be
* read-only. Read-only transactions do not require commit/rollback. * read-only. Read-only transactions do not require commit/rollback.
*/ */
......
/** /*
* Redistribution and use of this software and associated documentation * Redistribution and use of this software and associated documentation
* ("Software"), with or without modification, are permitted provided * ("Software"), with or without modification, are permitted provided
* that the following conditions are met: * that the following conditions are met:
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
* *
* Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved. * Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved.
* *
* $Id: XAConnectionImpl.java,v 1.2 2001/10/25 06:00:05 momjian Exp $ * $Id: XAConnectionImpl.java,v 1.3 2001/11/19 22:33:39 momjian Exp $
*/ */
...@@ -60,7 +60,7 @@ import javax.transaction.xa.Xid; ...@@ -60,7 +60,7 @@ import javax.transaction.xa.Xid;
import javax.transaction.xa.XAException; import javax.transaction.xa.XAException;
/** /*
* Implements an X/A connection that can be pooled and managed from * Implements an X/A connection that can be pooled and managed from
* inside a transaction monitor. This is the XA connection returned * inside a transaction monitor. This is the XA connection returned
* to the application server from the {@link XADataSourceImpl} and * to the application server from the {@link XADataSourceImpl} and
...@@ -87,7 +87,7 @@ public final class XAConnectionImpl ...@@ -87,7 +87,7 @@ public final class XAConnectionImpl
{ {
/** /*
* This is the underlying JDBC connection represented * This is the underlying JDBC connection represented
* by this pooled connection. This variable may initially be null, * by this pooled connection. This variable may initially be null,
* in which case {@link #getUnderlying} will return a new * in which case {@link #getUnderlying} will return a new
...@@ -98,7 +98,7 @@ public final class XAConnectionImpl ...@@ -98,7 +98,7 @@ public final class XAConnectionImpl
Connection _underlying; Connection _underlying;
/** /*
* If this connection is part of a global transaction, this * If this connection is part of a global transaction, this
* object identifies the transaction. The transaction's * object identifies the transaction. The transaction's
* underlying JDBC connection is exposed through this object and * underlying JDBC connection is exposed through this object and
...@@ -109,7 +109,7 @@ public final class XAConnectionImpl ...@@ -109,7 +109,7 @@ public final class XAConnectionImpl
private TxConnection _txConn; private TxConnection _txConn;
/** /*
* The client connection last handed to the application. If the * The client connection last handed to the application. If the
* application calls {@link #getConnection} again, we should hand * application calls {@link #getConnection} again, we should hand
* out a new client connection and render the previous one closed. * out a new client connection and render the previous one closed.
...@@ -118,7 +118,7 @@ public final class XAConnectionImpl ...@@ -118,7 +118,7 @@ public final class XAConnectionImpl
//private ClientConnection _clientConn; //private ClientConnection _clientConn;
/** /*
* An event listener can be registered and notified when the * An event listener can be registered and notified when the
* client connection has been closed by the application or a * client connection has been closed by the application or a
* fatal error rendered it unuseable. * fatal error rendered it unuseable.
...@@ -126,14 +126,14 @@ public final class XAConnectionImpl ...@@ -126,14 +126,14 @@ public final class XAConnectionImpl
private ConnectionEventListener _listener; private ConnectionEventListener _listener;
/** /*
* The resource manager is used to share connections within the * The resource manager is used to share connections within the
* same transaction. * same transaction.
*/ */
private XADataSourceImpl _resManager; private XADataSourceImpl _resManager;
/** /*
* This is an identifier we hand to the client connection when we * This is an identifier we hand to the client connection when we
* create it. When the client connection asks for the underlying * create it. When the client connection asks for the underlying
* connection, we compare the identifiers. If since that point we * connection, we compare the identifiers. If since that point we
...@@ -149,7 +149,7 @@ public final class XAConnectionImpl ...@@ -149,7 +149,7 @@ public final class XAConnectionImpl
private int _clientId = 1; private int _clientId = 1;
/** /*
* Construct a new XA/pooled connection with the underlying JDBC * Construct a new XA/pooled connection with the underlying JDBC
* connection suitable for this driver only. This is a one to one * connection suitable for this driver only. This is a one to one
* mapping between this connection and the underlying connection. * mapping between this connection and the underlying connection.
...@@ -288,7 +288,7 @@ public final class XAConnectionImpl ...@@ -288,7 +288,7 @@ public final class XAConnectionImpl
} }
/** /*
* Called by {@link ClientConnection} to notify that the application * Called by {@link ClientConnection} to notify that the application
* has attempted to close the connection. After this call, the client * has attempted to close the connection. After this call, the client
* connection is no longer useable and this pooled connection can be * connection is no longer useable and this pooled connection can be
...@@ -341,7 +341,7 @@ public final class XAConnectionImpl ...@@ -341,7 +341,7 @@ public final class XAConnectionImpl
} }
/** /*
* Called by {@link ClientConnection} to notify that an error * Called by {@link ClientConnection} to notify that an error
* occured with the underlying connection. If the error is * occured with the underlying connection. If the error is
* critical, the underlying connection is closed and the listener * critical, the underlying connection is closed and the listener
...@@ -903,7 +903,7 @@ public final class XAConnectionImpl ...@@ -903,7 +903,7 @@ public final class XAConnectionImpl
} }
/** /*
* Returns true if this connection is inside a global transaction. * Returns true if this connection is inside a global transaction.
* If the connection is inside a global transaction it will not * If the connection is inside a global transaction it will not
* allow commit/rollback directly from the {@link * allow commit/rollback directly from the {@link
...@@ -914,8 +914,7 @@ public final class XAConnectionImpl ...@@ -914,8 +914,7 @@ public final class XAConnectionImpl
return ( _txConn != null ); return ( _txConn != null );
} }
/*
/**
* Called to obtain the underlying connections. If this connection * Called to obtain the underlying connections. If this connection
* is part of a transaction, the transction's underlying connection * is part of a transaction, the transction's underlying connection
* is returned, or an exception is thrown if the connection was * is returned, or an exception is thrown if the connection was
......
/** /*
* Redistribution and use of this software and associated documentation * Redistribution and use of this software and associated documentation
* ("Software"), with or without modification, are permitted provided * ("Software"), with or without modification, are permitted provided
* that the following conditions are met: * that the following conditions are met:
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
* *
* Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved. * Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved.
* *
* $Id: XADataSourceImpl.java,v 1.2 2001/10/25 06:00:05 momjian Exp $ * $Id: XADataSourceImpl.java,v 1.3 2001/11/19 22:33:39 momjian Exp $
*/ */
...@@ -65,7 +65,7 @@ import javax.transaction.xa.Xid; ...@@ -65,7 +65,7 @@ import javax.transaction.xa.Xid;
/** /*
* Implements a JDBC 2.0 {@link XADataSource} for any JDBC driver * Implements a JDBC 2.0 {@link XADataSource} for any JDBC driver
* with JNDI persistance support. The base implementation is actually * with JNDI persistance support. The base implementation is actually
* provided by a different {@link DataSource} class; although this is * provided by a different {@link DataSource} class; although this is
...@@ -82,13 +82,13 @@ public abstract class XADataSourceImpl ...@@ -82,13 +82,13 @@ public abstract class XADataSourceImpl
{ {
/** /*
* Maps underlying JDBC connections into global transaction Xids. * Maps underlying JDBC connections into global transaction Xids.
*/ */
private transient Hashtable _txConnections = new Hashtable(); private transient Hashtable _txConnections = new Hashtable();
/** /*
* This is a pool of free underlying JDBC connections. If two * This is a pool of free underlying JDBC connections. If two
* XA connections are used in the same transaction, the second * XA connections are used in the same transaction, the second
* one will make its underlying JDBC connection available to * one will make its underlying JDBC connection available to
...@@ -98,20 +98,20 @@ public abstract class XADataSourceImpl ...@@ -98,20 +98,20 @@ public abstract class XADataSourceImpl
private transient Stack _pool = new Stack(); private transient Stack _pool = new Stack();
/** /*
* A background deamon thread terminating connections that have * A background deamon thread terminating connections that have
* timed out. * timed out.
*/ */
private transient Thread _background; private transient Thread _background;
/** /*
* The default timeout for all new transactions. * The default timeout for all new transactions.
*/ */
private int _txTimeout = DEFAULT_TX_TIMEOUT; private int _txTimeout = DEFAULT_TX_TIMEOUT;
/** /*
* The default timeout for all new transactions is 10 seconds. * The default timeout for all new transactions is 10 seconds.
*/ */
public final static int DEFAULT_TX_TIMEOUT = 10; public final static int DEFAULT_TX_TIMEOUT = 10;
...@@ -119,7 +119,7 @@ public abstract class XADataSourceImpl ...@@ -119,7 +119,7 @@ public abstract class XADataSourceImpl
/** /*
* Implementation details: * Implementation details:
* If two XAConnections are associated with the same transaction * If two XAConnections are associated with the same transaction
* (one with a start the other with a join) they must use the * (one with a start the other with a join) they must use the
...@@ -192,7 +192,7 @@ public abstract class XADataSourceImpl ...@@ -192,7 +192,7 @@ public abstract class XADataSourceImpl
} }
/** /*
* Returns the default timeout for all transactions. * Returns the default timeout for all transactions.
*/ */
public int getTransactionTimeout() public int getTransactionTimeout()
...@@ -201,7 +201,7 @@ public abstract class XADataSourceImpl ...@@ -201,7 +201,7 @@ public abstract class XADataSourceImpl
} }
/** /*
* This method is defined in the interface and implemented in the * This method is defined in the interface and implemented in the
* derived class, we re-define it just to make sure it does not * derived class, we re-define it just to make sure it does not
* throw an {@link SQLException} and that we do not need to * throw an {@link SQLException} and that we do not need to
...@@ -210,7 +210,7 @@ public abstract class XADataSourceImpl ...@@ -210,7 +210,7 @@ public abstract class XADataSourceImpl
public abstract java.io.PrintWriter getLogWriter(); public abstract java.io.PrintWriter getLogWriter();
/** /*
* Sets the default timeout for all transactions. The timeout is * Sets the default timeout for all transactions. The timeout is
* specified in seconds. Use zero for the default timeout. Calling * specified in seconds. Use zero for the default timeout. Calling
* this method does not affect transactions in progress. * this method does not affect transactions in progress.
...@@ -227,7 +227,7 @@ public abstract class XADataSourceImpl ...@@ -227,7 +227,7 @@ public abstract class XADataSourceImpl
} }
/** /*
* Returns an underlying connection for the global transaction, * Returns an underlying connection for the global transaction,
* if one has been associated before. * if one has been associated before.
* *
...@@ -240,7 +240,7 @@ public abstract class XADataSourceImpl ...@@ -240,7 +240,7 @@ public abstract class XADataSourceImpl
} }
/** /*
* Associates the global transaction with an underlying connection, * Associates the global transaction with an underlying connection,
* or dissociate it when null is passed. * or dissociate it when null is passed.
* *
...@@ -256,7 +256,7 @@ public abstract class XADataSourceImpl ...@@ -256,7 +256,7 @@ public abstract class XADataSourceImpl
} }
/** /*
* Release an unused connection back to the pool. If an XA * Release an unused connection back to the pool. If an XA
* connection has been asked to join an existing transaction, * connection has been asked to join an existing transaction,
* it will no longer use it's own connection and make it available * it will no longer use it's own connection and make it available
...@@ -270,7 +270,7 @@ public abstract class XADataSourceImpl ...@@ -270,7 +270,7 @@ public abstract class XADataSourceImpl
} }
/** /*
* Creates a new underlying connection. Used by XA connection * Creates a new underlying connection. Used by XA connection
* that lost it's underlying connection when joining a * that lost it's underlying connection when joining a
* transaction and is now asked to produce a new connection. * transaction and is now asked to produce a new connection.
...@@ -294,7 +294,7 @@ public abstract class XADataSourceImpl ...@@ -294,7 +294,7 @@ public abstract class XADataSourceImpl
} }
/** /*
* XXX Not fully implemented yet and no code to really * XXX Not fully implemented yet and no code to really
* test it. * test it.
*/ */
...@@ -316,7 +316,7 @@ public abstract class XADataSourceImpl ...@@ -316,7 +316,7 @@ public abstract class XADataSourceImpl
} }
/** /*
* Returns the transaction isolation level to use with all newly * Returns the transaction isolation level to use with all newly
* created transactions, or {@link Connection#TRANSACTION_NONE} * created transactions, or {@link Connection#TRANSACTION_NONE}
* if using the driver's default isolation level. * if using the driver's default isolation level.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment