diff options
Diffstat (limited to 'src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java')
-rw-r--r-- | src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java | 1261 |
1 files changed, 1261 insertions, 0 deletions
diff --git a/src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java b/src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java new file mode 100644 index 00000000000..9790dac4aa8 --- /dev/null +++ b/src/interfaces/jdbc/postgresql/jdbc2/ResultSet.java @@ -0,0 +1,1261 @@ +package postgresql.jdbc2; + +// IMPORTANT NOTE: This file implements the JDBC 2 version of the driver. +// If you make any modifications to this file, you must make sure that the +// changes are also made (if relevent) to the related JDBC 1 class in the +// postgresql.jdbc1 package. + + +import java.lang.*; +import java.io.*; +import java.math.*; +import java.text.*; +import java.util.*; +import java.sql.*; +import postgresql.Field; +import postgresql.largeobject.*; +import postgresql.util.*; + +/** + * 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 + * column values can be accessed in any order. + * + * <P>A ResultSet maintains a cursor pointing to its current row of data. + * Initially the cursor is positioned before the first row. The 'next' + * method moves the cursor to the next row. + * + * <P>The getXXX methods retrieve column values for the current row. You can + * retrieve values either using the index number of the column, or by using + * the name of the column. In general using the column index will be more + * efficient. Columns are numbered from 1. + * + * <P>For maximum portability, ResultSet columns within each row should be read + * in left-to-right order and each column should be read only once. + * + *<P> For the getXXX methods, the JDBC driver attempts to convert the + * underlying data to the specified Java type and returns a suitable Java + * value. See the JDBC specification for allowable mappings from SQL types + * to Java types with the ResultSet getXXX methods. + * + * <P>Column names used as input to getXXX methods are case insenstive. When + * performing a getXXX using a column name, if several columns have the same + * name, then the value of the first matching column will be returned. The + * column name option is designed to be used when column names are used in the + * SQL Query. For columns that are NOT explicitly named in the query, it is + * best to use column numbers. If column names were used there is no way for + * the programmer to guarentee that they actually refer to the intended + * columns. + * + * <P>A ResultSet is automatically closed by the Statement that generated it + * when that Statement is closed, re-executed, or is used to retrieve the + * next result from a sequence of multiple results. + * + * <P>The number, types and properties of a ResultSet's columns are provided by + * the ResultSetMetaData object returned by the getMetaData method. + * + * @see ResultSetMetaData + * @see java.sql.ResultSet + */ +public class ResultSet extends postgresql.ResultSet implements java.sql.ResultSet +{ + /** + * Create a new ResultSet - Note that we create ResultSets to + * represent the results of everything. + * + * @param fields an array of Field objects (basically, the + * ResultSet MetaData) + * @param tuples Vector of the actual data + * @param status the status string returned from the back end + * @param updateCount the number of rows affected by the operation + * @param cursor the positioned update/delete cursor name + */ + public ResultSet(Connection conn, Field[] fields, Vector tuples, String status, int updateCount) + { + super(conn,fields,tuples,status,updateCount); + } + + /** + * A ResultSet is initially positioned before its first row, + * the first call to next makes the first row the current row; + * the second call makes the second row the current row, etc. + * + * <p>If an input stream from the previous row is open, it is + * implicitly closed. The ResultSet's warning chain is cleared + * when a new row is read + * + * @return true if the new current is valid; false if there are no + * more rows + * @exception SQLException if a database access error occurs + */ + public boolean next() throws SQLException + { + if (++current_row >= rows.size()) + return false; + this_row = (byte [][])rows.elementAt(current_row); + return true; + } + + /** + * In some cases, it is desirable to immediately release a ResultSet + * database and JDBC resources instead of waiting for this to happen + * when it is automatically closed. The close method provides this + * immediate release. + * + * <p><B>Note:</B> A ResultSet is automatically closed by the Statement + * the Statement that generated it when that Statement is closed, + * re-executed, or is used to retrieve the next result from a sequence + * of multiple results. A ResultSet is also automatically closed + * when it is garbage collected. + * + * @exception SQLException if a database access error occurs + */ + public void close() throws SQLException + { + // No-op + } + + /** + * A column may have the value of SQL NULL; wasNull() reports whether + * 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 + * call wasNull() to find if the value was SQL NULL + * + * @return true if the last column read was SQL NULL + * @exception SQLException if a database access error occurred + */ + public boolean wasNull() throws SQLException + { + return wasNullFlag; + } + + /** + * 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... + * @return the column value, null for SQL NULL + * @exception SQLException if a database access error occurs + */ + public String getString(int columnIndex) throws SQLException + { + //byte[] bytes = getBytes(columnIndex); + // + //if (bytes == null) + //return null; + //return new String(bytes); + if (columnIndex < 1 || columnIndex > fields.length) + throw new SQLException("Column Index out of range"); + wasNullFlag = (this_row[columnIndex - 1] == null); + if(wasNullFlag) + return null; + return new String(this_row[columnIndex - 1]); + } + + /** + * 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... + * @return the column value, false for SQL NULL + * @exception SQLException if a database access error occurs + */ + public boolean getBoolean(int columnIndex) throws SQLException + { + String s = getString(columnIndex); + + if (s != null) + { + int c = s.charAt(0); + return ((c == 't') || (c == 'T')); + } + return false; // SQL NULL + } + + /** + * 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,... + * @return the column value; 0 if SQL NULL + * @exception SQLException if a database access error occurs + */ + public byte getByte(int columnIndex) throws SQLException + { + String s = getString(columnIndex); + + if (s != null) + { + try + { + return Byte.parseByte(s); + } catch (NumberFormatException e) { + throw new SQLException("Bad Byte Form: " + s); + } + } + return 0; // SQL NULL + } + + /** + * 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,... + * @return the column value; 0 if SQL NULL + * @exception SQLException if a database access error occurs + */ + public short getShort(int columnIndex) throws SQLException + { + String s = getString(columnIndex); + + if (s != null) + { + try + { + return Short.parseShort(s); + } catch (NumberFormatException e) { + throw new SQLException("Bad Short Form: " + s); + } + } + return 0; // SQL NULL + } + + /** + * 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,... + * @return the column value; 0 if SQL NULL + * @exception SQLException if a database access error occurs + */ + public int getInt(int columnIndex) throws SQLException + { + String s = getString(columnIndex); + + if (s != null) + { + try + { + return Integer.parseInt(s); + } catch (NumberFormatException e) { + throw new SQLException ("Bad Integer Form: " + s); + } + } + return 0; // SQL NULL + } + + /** + * 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,... + * @return the column value; 0 if SQL NULL + * @exception SQLException if a database access error occurs + */ + public long getLong(int columnIndex) throws SQLException + { + String s = getString(columnIndex); + + if (s != null) + { + try + { + return Long.parseLong(s); + } catch (NumberFormatException e) { + throw new SQLException ("Bad Long Form: " + s); + } + } + return 0; // SQL NULL + } + + /** + * 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,... + * @return the column value; 0 if SQL NULL + * @exception SQLException if a database access error occurs + */ + public float getFloat(int columnIndex) throws SQLException + { + String s = getString(columnIndex); + + if (s != null) + { + try + { + return Float.valueOf(s).floatValue(); + } catch (NumberFormatException e) { + throw new SQLException ("Bad Float Form: " + s); + } + } + return 0; // SQL NULL + } + + /** + * 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,... + * @return the column value; 0 if SQL NULL + * @exception SQLException if a database access error occurs + */ + public double getDouble(int columnIndex) throws SQLException + { + String s = getString(columnIndex); + + if (s != null) + { + try + { + return Double.valueOf(s).doubleValue(); + } catch (NumberFormatException e) { + throw new SQLException ("Bad Double Form: " + s); + } + } + return 0; // SQL NULL + } + + /** + * Get the value of a column in the current row as a + * java.lang.BigDecimal object + * + * @param columnIndex the first column is 1, the second is 2... + * @param scale the number of digits to the right of the decimal + * @return the column value; if the value is SQL NULL, null + * @exception SQLException if a database access error occurs + * @deprecated + */ + public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException + { + String s = getString(columnIndex); + BigDecimal val; + + if (s != null) + { + try + { + val = new BigDecimal(s); + } catch (NumberFormatException e) { + throw new SQLException ("Bad BigDecimal Form: " + s); + } + try + { + return val.setScale(scale); + } catch (ArithmeticException e) { + throw new SQLException ("Bad BigDecimal Form: " + s); + } + } + return null; // SQL NULL + } + + /** + * 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 + * backend. However, if the column is an OID, then it is assumed to + * refer to a Large Object, and that object is returned as a byte array. + * + * <p><b>Be warned</b> If the large object is huge, then you may run out + * of memory. + * + * @param columnIndex the first column is 1, the second is 2, ... + * @return the column value; if the value is SQL NULL, the result + * is null + * @exception SQLException if a database access error occurs + */ + public byte[] getBytes(int columnIndex) throws SQLException + { + if (columnIndex < 1 || columnIndex > fields.length) + throw new SQLException("Column Index out of range"); + wasNullFlag = (this_row[columnIndex - 1] == null); + + // Handle OID's as BLOBS + if(!wasNullFlag) + if( fields[columnIndex - 1].getOID() == 26) { + LargeObjectManager lom = connection.getLargeObjectAPI(); + LargeObject lob = lom.open(getInt(columnIndex)); + byte buf[] = lob.read(lob.size()); + lob.close(); + return buf; + } + + return this_row[columnIndex - 1]; + } + + /** + * Get the value of a column in the current row as a java.sql.Date + * object + * + * @param columnIndex the first column is 1, the second is 2... + * @return the column value; null if SQL NULL + * @exception SQLException if a database access error occurs + */ + public java.sql.Date getDate(int columnIndex) throws SQLException + { + String s = getString(columnIndex); + if(s==null) + return null; + SimpleDateFormat df = new SimpleDateFormat(connection.getDateStyle()); + try { + return new java.sql.Date(df.parse(s).getTime()); + } catch (ParseException e) { + throw new SQLException("Bad Date Format: at " + e.getErrorOffset() + " in " + s); + } + } + + /** + * Get the value of a column in the current row as a java.sql.Time + * object + * + * @param columnIndex the first column is 1, the second is 2... + * @return the column value; null if SQL NULL + * @exception SQLException if a database access error occurs + */ + public Time getTime(int columnIndex) throws SQLException + { + String s = getString(columnIndex); + + if (s != null) + { + try + { + if (s.length() != 5 && s.length() != 8) + throw new NumberFormatException("Wrong Length!"); + int hr = Integer.parseInt(s.substring(0,2)); + int min = Integer.parseInt(s.substring(3,5)); + int sec = (s.length() == 5) ? 0 : Integer.parseInt(s.substring(6)); + return new Time(hr, min, sec); + } catch (NumberFormatException e) { + throw new SQLException ("Bad Time Form: " + s); + } + } + return null; // SQL NULL + } + + /** + * Get the value of a column in the current row as a + * java.sql.Timestamp object + * + * @param columnIndex the first column is 1, the second is 2... + * @return the column value; null if SQL NULL + * @exception SQLException if a database access error occurs + */ + public Timestamp getTimestamp(int columnIndex) throws SQLException + { + String s = getString(columnIndex); + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:sszzz"); + + if (s != null) + { + int TZ = new Float(s.substring(19)).intValue(); + TZ = TZ * 60 * 60 * 1000; + TimeZone zone = TimeZone.getDefault(); + zone.setRawOffset(TZ); + String nm = zone.getID(); + s = s.substring(0,18) + nm; + try { + java.util.Date d = df.parse(s); + return new Timestamp(d.getTime()); + } catch (ParseException e) { + throw new SQLException("Bad Timestamp Format: at " + e.getErrorOffset() + " in " + s); + } + } + return null; // SQL NULL + } + + /** + * A column value can be retrieved as a stream of ASCII characters + * and then read in chunks from the stream. This method is + * particular suitable for retrieving large LONGVARCHAR values. + * The JDBC driver will do any necessary conversion from the + * database format into ASCII. + * + * <p><B>Note:</B> All the data in the returned stream must be read + * prior to getting the value of any other column. The next call + * to a get method implicitly closes the stream. Also, a stream + * may return 0 for available() whether there is data available + * or not. + * + *<p> We implement an ASCII stream as a Binary stream - we should really + * do the data conversion, but I cannot be bothered to implement this + * right now. + * + * @param columnIndex the first column is 1, the second is 2, ... + * @return a Java InputStream that delivers the database column + * value as a stream of one byte ASCII characters. If the + * value is SQL NULL then the result is null + * @exception SQLException if a database access error occurs + * @see getBinaryStream + */ + public InputStream getAsciiStream(int columnIndex) throws SQLException + { + return getBinaryStream(columnIndex); + } + + /** + * A column value can also be retrieved as a stream of Unicode + * characters. We implement this as a binary stream. + * + * ** DEPRECATED IN JDBC 2 ** + * + * @param columnIndex the first column is 1, the second is 2... + * @return a Java InputStream that delivers the database column value + * as a stream of two byte Unicode characters. If the value is + * SQL NULL, then the result is null + * @exception SQLException if a database access error occurs + * @see getAsciiStream + * @see getBinaryStream + * @deprecated + */ + public InputStream getUnicodeStream(int columnIndex) throws SQLException + { + return getBinaryStream(columnIndex); + } + + /** + * A column value can also be retrieved as a binary strea. This + * method is suitable for retrieving LONGVARBINARY values. + * + * @param columnIndex the first column is 1, the second is 2... + * @return a Java InputStream that delivers the database column value + * as a stream of bytes. If the value is SQL NULL, then the result + * is null + * @exception SQLException if a database access error occurs + * @see getAsciiStream + * @see getUnicodeStream + */ + public InputStream getBinaryStream(int columnIndex) throws SQLException + { + byte b[] = getBytes(columnIndex); + + if (b != null) + return new ByteArrayInputStream(b); + return null; // SQL NULL + } + + /** + * The following routines simply convert the columnName into + * a columnIndex and then call the appropriate routine above. + * + * @param columnName is the SQL name of the column + * @return the column value + * @exception SQLException if a database access error occurs + */ + public String getString(String columnName) throws SQLException + { + return getString(findColumn(columnName)); + } + + public boolean getBoolean(String columnName) throws SQLException + { + return getBoolean(findColumn(columnName)); + } + + public byte getByte(String columnName) throws SQLException + { + + return getByte(findColumn(columnName)); + } + + public short getShort(String columnName) throws SQLException + { + return getShort(findColumn(columnName)); + } + + public int getInt(String columnName) throws SQLException + { + return getInt(findColumn(columnName)); + } + + public long getLong(String columnName) throws SQLException + { + return getLong(findColumn(columnName)); + } + + public float getFloat(String columnName) throws SQLException + { + return getFloat(findColumn(columnName)); + } + + public double getDouble(String columnName) throws SQLException + { + return getDouble(findColumn(columnName)); + } + + /** + * @deprecated + */ + public BigDecimal getBigDecimal(String columnName, int scale) throws SQLException + { + return getBigDecimal(findColumn(columnName), scale); + } + + public byte[] getBytes(String columnName) throws SQLException + { + return getBytes(findColumn(columnName)); + } + + public java.sql.Date getDate(String columnName) throws SQLException + { + return getDate(findColumn(columnName)); + } + + public Time getTime(String columnName) throws SQLException + { + return getTime(findColumn(columnName)); + } + + public Timestamp getTimestamp(String columnName) throws SQLException + { + return getTimestamp(findColumn(columnName)); + } + + public InputStream getAsciiStream(String columnName) throws SQLException + { + return getAsciiStream(findColumn(columnName)); + } + + /** + * + * ** DEPRECATED IN JDBC 2 ** + * + * @deprecated + */ + public InputStream getUnicodeStream(String columnName) throws SQLException + { + return getUnicodeStream(findColumn(columnName)); + } + + public InputStream getBinaryStream(String columnName) throws SQLException + { + return getBinaryStream(findColumn(columnName)); + } + + /** + * The first warning reported by calls on this ResultSet is + * returned. Subsequent ResultSet warnings will be chained + * to this SQLWarning. + * + * <p>The warning chain is automatically cleared each time a new + * row is read. + * + * <p><B>Note:</B> This warning chain only covers warnings caused by + * ResultSet methods. Any warnings caused by statement methods + * (such as reading OUT parameters) will be chained on the + * Statement object. + * + * @return the first SQLWarning or null; + * @exception SQLException if a database access error occurs. + */ + public SQLWarning getWarnings() throws SQLException + { + return warnings; + } + + /** + * After this call, getWarnings returns null until a new warning + * is reported for this ResultSet + * + * @exception SQLException if a database access error occurs + */ + public void clearWarnings() throws SQLException + { + warnings = null; + } + + /** + * Get the name of the SQL cursor used by this ResultSet + * + * <p>In SQL, a result table is retrieved though a cursor that is + * named. The current row of a result can be updated or deleted + * using a positioned update/delete statement that references + * the cursor name. + * + * <p>JDBC supports this SQL feature by providing the name of the + * SQL cursor used by a ResultSet. The current row of a ResulSet + * is also the current row of this SQL cursor. + * + * <p><B>Note:</B> If positioned update is not supported, a SQLException + * is thrown. + * + * @return the ResultSet's SQL cursor name. + * @exception SQLException if a database access error occurs + */ + public String getCursorName() throws SQLException + { + return connection.getCursorName(); + } + + /** + * The numbers, types and properties of a ResultSet's columns are + * provided by the getMetaData method + * + * @return a description of the ResultSet's columns + * @exception SQLException if a database access error occurs + */ + public java.sql.ResultSetMetaData getMetaData() throws SQLException + { + return new ResultSetMetaData(rows, fields); + } + + /** + * 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 + * Java object. The type of the Java object will be the default + * Java Object type corresponding to the column's SQL type, following + * the mapping specified in the JDBC specification. + * + * <p>This method may also be used to read database specific abstract + * data types. + * + * @param columnIndex the first column is 1, the second is 2... + * @return a Object holding the column value + * @exception SQLException if a database access error occurs + */ + public Object getObject(int columnIndex) throws SQLException + { + Field field; + + if (columnIndex < 1 || columnIndex > fields.length) + throw new SQLException("Column index out of range"); + field = fields[columnIndex - 1]; + + // some fields can be null, mainly from those returned by MetaData methods + if(field==null) { + wasNullFlag=true; + return null; + } + + switch (field.getSQLType()) + { + case Types.BIT: + return new Boolean(getBoolean(columnIndex)); + case Types.SMALLINT: + return new Integer(getInt(columnIndex)); + case Types.INTEGER: + return new Integer(getInt(columnIndex)); + case Types.BIGINT: + return new Long(getLong(columnIndex)); + case Types.NUMERIC: + return getBigDecimal(columnIndex, 0); + case Types.REAL: + return new Float(getFloat(columnIndex)); + case Types.DOUBLE: + return new Double(getDouble(columnIndex)); + case Types.CHAR: + case Types.VARCHAR: + return getString(columnIndex); + case Types.DATE: + return getDate(columnIndex); + case Types.TIME: + return getTime(columnIndex); + case Types.TIMESTAMP: + return getTimestamp(columnIndex); + default: + return connection.getObject(field.getTypeName(), getString(columnIndex)); + } + } + + /** + * 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 + * Java object. The type of the Java object will be the default + * Java Object type corresponding to the column's SQL type, following + * the mapping specified in the JDBC specification. + * + * <p>This method may also be used to read database specific abstract + * data types. + * + * @param columnName is the SQL name of the column + * @return a Object holding the column value + * @exception SQLException if a database access error occurs + */ + public Object getObject(String columnName) throws SQLException + { + return getObject(findColumn(columnName)); + } + + /** + * Map a ResultSet column name to a ResultSet column index + * + * @param columnName the name of the column + * @return the column index + * @exception SQLException if a database access error occurs + */ + public int findColumn(String columnName) throws SQLException + { + int i; + + for (i = 0 ; i < fields.length; ++i) + if (fields[i].name.equalsIgnoreCase(columnName)) + return (i+1); + throw new SQLException ("Column name not found"); + } + + // ** JDBC 2 Extensions ** + + public boolean absolute(int row) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void afterLast() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void beforeFirst() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void cancelRowUpdates() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void deleteRow() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public boolean first() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public Array getArray(String colName) throws SQLException + { + return getArray(findColumn(colName)); + } + + public Array getArray(int i) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public java.math.BigDecimal getBigDecimal(int columnIndex) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public java.math.BigDecimal getBigDecimal(String columnName) throws SQLException + { + return getBigDecimal(findColumn(columnName)); + } + + public Blob getBlob(String columnName) throws SQLException + { + return getBlob(findColumn(columnName)); + } + + public Blob getBlob(int i) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public java.io.Reader getCharacterStream(String columnName) throws SQLException + { + return getCharacterStream(findColumn(columnName)); + } + + public java.io.Reader getCharacterStream(int i) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public Clob getClob(String columnName) throws SQLException + { + return getClob(findColumn(columnName)); + } + + public Clob getClob(int i) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public int getConcurrency() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public java.sql.Date getDate(int i,java.util.Calendar cal) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public Time getTime(int i,java.util.Calendar cal) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public Timestamp getTimestamp(int i,java.util.Calendar cal) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public java.sql.Date getDate(String c,java.util.Calendar cal) throws SQLException + { + return getDate(findColumn(c),cal); + } + + public Time getTime(String c,java.util.Calendar cal) throws SQLException + { + return getTime(findColumn(c),cal); + } + + public Timestamp getTimestamp(String c,java.util.Calendar cal) throws SQLException + { + return getTimestamp(findColumn(c),cal); + } + + public int getFetchDirection() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public int getFetchSize() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public int getKeysetSize() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public Object getObject(String columnName,java.util.Map map) throws SQLException + { + return getObject(findColumn(columnName),map); + } + + public Object getObject(int i,java.util.Map map) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public Ref getRef(String columnName) throws SQLException + { + return getRef(findColumn(columnName)); + } + + public Ref getRef(int i) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public int getRow() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + // This one needs some thought, as not all ResultSets come from a statement + public java.sql.Statement getStatement() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public int getType() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void insertRow() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public boolean isAfterLast() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public boolean isBeforeFirst() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public boolean isFirst() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public boolean isLast() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public boolean last() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void moveToCurrentRow() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void moveToInsertRow() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public boolean previous() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void refreshRow() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public boolean relative(int rows) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public boolean rowDeleted() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public boolean rowInserted() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public boolean rowUpdated() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void setFetchDirection(int direction) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void setFetchSize(int rows) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void setKeysetSize(int keys) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateAsciiStream(int columnIndex, + java.io.InputStream x, + int length + ) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateAsciiStream(String columnName, + java.io.InputStream x, + int length + ) throws SQLException + { + updateAsciiStream(findColumn(columnName),x,length); + } + + public void updateBigDecimal(int columnIndex, + java.math.BigDecimal x + ) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateBigDecimal(String columnName, + java.math.BigDecimal x + ) throws SQLException + { + updateBigDecimal(findColumn(columnName),x); + } + + public void updateBinaryStream(int columnIndex, + java.io.InputStream x, + int length + ) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateBinaryStream(String columnName, + java.io.InputStream x, + int length + ) throws SQLException + { + updateBinaryStream(findColumn(columnName),x,length); + } + + public void updateBoolean(int columnIndex,boolean x) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateBoolean(String columnName,boolean x) throws SQLException + { + updateBoolean(findColumn(columnName),x); + } + + public void updateByte(int columnIndex,byte x) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateByte(String columnName,byte x) throws SQLException + { + updateByte(findColumn(columnName),x); + } + + public void updateBytes(String columnName,byte[] x) throws SQLException + { + updateBytes(findColumn(columnName),x); + } + + public void updateBytes(int columnIndex,byte[] x) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateCharacterStream(int columnIndex, + java.io.Reader x, + int length + ) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateCharacterStream(String columnName, + java.io.Reader x, + int length + ) throws SQLException + { + updateCharacterStream(findColumn(columnName),x,length); + } + + public void updateDate(int columnIndex,java.sql.Date x) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateDate(String columnName,java.sql.Date x) throws SQLException + { + updateDate(findColumn(columnName),x); + } + + public void updateDouble(int columnIndex,double x) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateDouble(String columnName,double x) throws SQLException + { + updateDouble(findColumn(columnName),x); + } + + public void updateFloat(int columnIndex,float x) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateFloat(String columnName,float x) throws SQLException + { + updateFloat(findColumn(columnName),x); + } + + public void updateInt(int columnIndex,int x) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateInt(String columnName,int x) throws SQLException + { + updateInt(findColumn(columnName),x); + } + + public void updateLong(int columnIndex,long x) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateLong(String columnName,long x) throws SQLException + { + updateLong(findColumn(columnName),x); + } + + public void updateNull(int columnIndex) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateNull(String columnName) throws SQLException + { + updateNull(findColumn(columnName)); + } + + public void updateObject(int columnIndex,Object x) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateObject(String columnName,Object x) throws SQLException + { + updateObject(findColumn(columnName),x); + } + + public void updateObject(int columnIndex,Object x,int scale) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateObject(String columnName,Object x,int scale) throws SQLException + { + updateObject(findColumn(columnName),x,scale); + } + + public void updateRow() throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateShort(int columnIndex,short x) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateShort(String columnName,short x) throws SQLException + { + updateShort(findColumn(columnName),x); + } + + public void updateString(int columnIndex,String x) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateString(String columnName,String x) throws SQLException + { + updateString(findColumn(columnName),x); + } + + public void updateTime(int columnIndex,Time x) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateTime(String columnName,Time x) throws SQLException + { + updateTime(findColumn(columnName),x); + } + + public void updateTimestamp(int columnIndex,Timestamp x) throws SQLException + { + throw postgresql.Driver.notImplemented(); + } + + public void updateTimestamp(String columnName,Timestamp x) throws SQLException + { + updateTimestamp(findColumn(columnName),x); + } + +} + |