org.apache.derby.client.am
Class ResultSet

java.lang.Object
  extended by org.apache.derby.client.am.ResultSet
All Implemented Interfaces:
java.sql.ResultSet, java.sql.Wrapper, ResultSetCallbackInterface, UnitOfWorkListener
Direct Known Subclasses:
NetResultSet

public abstract class ResultSet
extends java.lang.Object
implements java.sql.ResultSet, ResultSetCallbackInterface


Field Summary
static int ABSOLUTE_ROWSET
           
protected  long absolutePosition_
           
protected  long absoluteRowNumberForTheIntendedRow_
           
protected  Agent agent_
           
(package private)  boolean autoCommitted_
           
private  boolean[] columnUpdated_
           
 Connection connection_
           
protected  long currentRowInRowset_
           
 Cursor cursor_
           
 boolean cursorHold_
           
 boolean cursorUnpositionedOnServer_
           
static byte DDM_RETURN_CALLER
           
static byte DDM_RETURN_CLIENT
           
 int fetchDirection_
           
 int fetchSize_
           
static int FIRST_ROWSET
           
protected  long firstRowInRowset_
           
 Section generatedSection_
           
private  CloseFilterInputStream is_
           
 boolean isAfterLast_
           
 boolean isBeforeFirst_
           
 boolean isFirst_
           
 boolean isLast_
           
protected  boolean isOnCurrentRow_
           
private  boolean isOnInsertRow_
           
 boolean isRowsetCursor_
           
 boolean isValidCursorPosition_
           
static int LAST_ROWSET
           
protected  long lastRowInRowset_
           
(package private)  boolean listenToUnitOfWork_
           
private  LOBStateTracker lobState
          Tracker object for LOB state, used to free locators on the server.
private  int maxRows_
           
 int nestingLevel_
           
static int NEXT_ROWSET
           
(package private)  boolean openOnClient_
           
 boolean openOnServer_
           
private  PreparedStatement preparedStatementForDelete_
           
private  PreparedStatement preparedStatementForInsert_
           
private  PreparedStatement preparedStatementForUpdate_
           
static int PREVIOUS_ROWSET
           
 long queryInstanceIdentifier_
           
 Sqlca queryTerminatingSqlca_
           
static int REFRESH_ROWSET
           
static int RELATIVE_ROWSET
           
 int resultSetConcurrency_
           
 int resultSetHoldability_
           
 ColumnMetaData resultSetMetaData_
           
 int resultSetType_
           
 long rowCount_
           
 boolean rowsetContainsLastRow_
           
 Sqlca[] rowsetSqlca_
           
 int rowsReceivedInCurrentRowset_
           
 int rowsYetToBeReceivedForRowset_
           
protected  byte rsReturnability_
           
 boolean scrollable_
           
static int scrollOrientation_absolute__
           
static int scrollOrientation_after__
           
static int scrollOrientation_before__
           
static int scrollOrientation_current__
           
static int scrollOrientation_first__
           
static int scrollOrientation_last__
           
static int scrollOrientation_next__
           
static int scrollOrientation_prior__
           
static int scrollOrientation_relative__
           
 int sensitivity_
           
static int sensitivity_insensitive__
           
static int sensitivity_sensitive_dynamic__
           
static int sensitivity_sensitive_static__
           
static int sensitivity_unknown__
           
 Statement statement_
           
private  boolean[] streamUsedFlags_
           
protected  int suggestedFetchSize_
           
static int updatability_delete__
           
static int updatability_readOnly__
           
static int updatability_unknown__
           
static int updatability_update__
           
private  java.lang.Object[] updatedColumns_
           
private  SqlWarning warnings_
           
private static int WAS_NOT_NULL
           
private static int WAS_NULL
           
private static int WAS_NULL_UNSET
           
private  int wasNull_
           
 
Fields inherited from interface java.sql.ResultSet
CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE
 
Constructor Summary
protected ResultSet(Agent agent, Statement statement, Cursor cursor, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
           
 
Method Summary
 boolean absolute(int row)
           
 boolean absoluteX(int row)
           
 void accumulateWarning(SqlWarning e)
           
private  void adjustAbsoluteRowset(long rowNumber)
           
private  void adjustFirstRowset()
           
private  void adjustLastRowset(long row)
           
private  void adjustNextRowset()
           
private  void adjustPreviousRowset(int orientation, long rowNumber, boolean isAfterLastRow)
           
private  void adjustRefreshRowset()
           
private  void adjustRelativeRowset(long rowNumber)
           
 void afterLast()
           
private  void afterLastX()
           
 void beforeFirst()
           
private  void beforeFirstX()
           
private  java.lang.String buildDeleteString()
           
private  java.lang.String buildInsertString()
           
private  java.lang.String buildUpdateString()
           
 void cancelRowUpdates()
           
protected  void checkAndThrowReceivedQueryTerminatingException()
           
protected  void checkForClosedResultSet()
           
private  void checkForUpdatableResultSet(java.lang.String operation)
           
(package private)  void checkForValidColumnIndex(int column)
           
private  void checkForValidCursorPosition()
           
private  void checkGetterPreconditions(int column)
           
private  void checkPositionedOnPlainRow()
           
private  int checkRowsetSqlca()
           
private  int checkRowsetSqlca(int row)
           
private  void checkThatResultSetIsNotDynamic()
           
private  void checkThatResultSetTypeIsScrollable()
           
private  void checkUpdatePreconditions(int column, java.lang.String operation)
           
 void clearWarnings()
          Clear all warnings on this ResultSet and make subsequent calls to getWarnings() return null until a new warning is reported.
 void clearWarningsX()
           
 void close()
           
private  void closeCloseFilterInputStream()
           
 void closeX()
           
 void completeLocalCommit(java.util.Iterator listenerIterator)
           
 void completeLocalRollback(java.util.Iterator listenerIterator)
           
 int completeSqlca(Sqlca sqlca)
           
private  CloseFilterInputStream createCloseFilterInputStream(java.io.InputStream is)
           
(package private)  void createLOBColumnTracker()
          Initializes the LOB state tracker.
protected  void delete()
           
 void deleteRow()
           
private  void deleteRowX()
           
 void earlyCloseComplete(Sqlca sqlca)
           
 void expandRowsetSqlca()
           
 int findColumn(java.lang.String columnName)
           
private  int findColumnX(java.lang.String columnName)
           
 boolean first()
           
private  boolean firstX()
           
(package private)  void flowCloseAndAutoCommitIfNotAutoCommitted()
           
 void flowFetch()
           
private  void flowGetRowset(int orientation, long rowNumber)
           
 void flowPositioningFetch(int scrollOrientation, int rowToFetch)
           
private  boolean getAbsoluteRowset(long row)
           
 java.sql.Array getArray(int column)
           
 java.sql.Array getArray(java.lang.String columnName)
           
 java.io.InputStream getAsciiStream(int column)
           
 java.io.InputStream getAsciiStream(java.lang.String columnName)
           
 java.math.BigDecimal getBigDecimal(int column)
           
 java.math.BigDecimal getBigDecimal(int column, int scale)
          Deprecated.  
 java.math.BigDecimal getBigDecimal(java.lang.String columnName)
           
 java.math.BigDecimal getBigDecimal(java.lang.String columnName, int scale)
          Deprecated.  
 java.io.InputStream getBinaryStream(int column)
           
 java.io.InputStream getBinaryStream(java.lang.String columnName)
           
 java.sql.Blob getBlob(int column)
           
 java.sql.Blob getBlob(java.lang.String columnName)
           
 boolean getBoolean(int column)
           
 boolean getBoolean(java.lang.String columnName)
           
 byte getByte(int column)
           
 byte getByte(java.lang.String columnName)
           
 byte[] getBytes(int column)
           
 byte[] getBytes(java.lang.String columnName)
           
 java.io.Reader getCharacterStream(int column)
           
 java.io.Reader getCharacterStream(java.lang.String columnName)
           
 java.sql.Clob getClob(int column)
           
 java.sql.Clob getClob(java.lang.String columnName)
           
 int getConcurrency()
           
 ConnectionCallbackInterface getConnectionCallbackInterface()
           
 java.lang.String getCursorName()
           
 java.sql.Date getDate(int column)
           
 java.sql.Date getDate(int column, java.util.Calendar calendar)
           
 java.sql.Date getDate(java.lang.String columnName)
           
 java.sql.Date getDate(java.lang.String columnName, java.util.Calendar cal)
           
 double getDouble(int column)
           
 double getDouble(java.lang.String columnName)
           
 int getFetchDirection()
           
 int getFetchSize()
           
private  boolean getFirstRowset()
           
 float getFloat(int column)
           
 float getFloat(java.lang.String columnName)
           
 int getHoldability()
          Retrieves the holdability for this ResultSet object.
 int getInt(int column)
           
 int getInt(java.lang.String columnName)
           
private  boolean getLastRowset(long row)
           
 long getLong(int column)
           
 long getLong(java.lang.String columnName)
           
 java.sql.ResultSetMetaData getMetaData()
           
(package private)  ColumnMetaData getMetaDataX()
           
private  boolean getNextRowset()
           
 java.lang.Object getObject(int column)
           
 java.lang.Object getObject(int column, java.util.Map map)
           
 java.lang.Object getObject(java.lang.String columnName)
           
 java.lang.Object getObject(java.lang.String columnName, java.util.Map map)
           
(package private)  java.lang.Object getObjectX(int column)
           
private  void getPreparedStatementForDelete()
           
private  void getPreparedStatementForInsert()
           
private  void getPreparedStatementForUpdate()
           
private  boolean getPreviousRowset()
           
 java.sql.Ref getRef(int column)
           
 java.sql.Ref getRef(java.lang.String columnName)
           
private  boolean getRefreshRowset()
           
private  boolean getRelativeRowset(long rows)
           
 int getRow()
           
protected  void getRowCount()
           
private  long getRowUncast()
           
private  int getRowX()
           
 byte getRSReturnability()
           
private  java.lang.String getServerCursorName()
           
 short getShort(int column)
           
 short getShort(java.lang.String columnName)
           
 java.sql.Statement getStatement()
          Retrieves the Statement object that produced this object, or null if the ResultSet was not produced by a Statement object.
 StatementCallbackInterface getStatementCallbackInterface()
           
 java.lang.String getString(int column)
           
 java.lang.String getString(java.lang.String columnName)
           
private  java.lang.String getTableName()
           
 java.sql.Time getTime(int column)
           
 java.sql.Time getTime(int column, java.util.Calendar calendar)
           
 java.sql.Time getTime(java.lang.String columnName)
           
 java.sql.Time getTime(java.lang.String columnName, java.util.Calendar cal)
           
 java.sql.Timestamp getTimestamp(int column)
           
 java.sql.Timestamp getTimestamp(int column, java.util.Calendar calendar)
           
 java.sql.Timestamp getTimestamp(java.lang.String columnName)
           
 java.sql.Timestamp getTimestamp(java.lang.String columnName, java.util.Calendar cal)
           
 int getType()
           
 java.io.InputStream getUnicodeStream(int column)
          Deprecated.  
 java.io.InputStream getUnicodeStream(java.lang.String columnName)
          Deprecated.  
 java.net.URL getURL(int columnIndex)
           
 java.net.URL getURL(java.lang.String columnName)
           
 java.sql.SQLWarning getWarnings()
          Returns the first SQLWarning reported on this ResultSet object, or null if there are no warnings.
protected  void insert()
           
 void insertRow()
           
private  void insertRowX()
           
 boolean isAfterLast()
           
private  boolean isAfterLastX()
           
 boolean isBeforeFirst()
           
private  boolean isBeforeFirstX()
           
 boolean isClosed()
          Checks whether this ResultSet object has been closed, either automatically or because close() has been called.
 boolean isFirst()
           
private  boolean isFirstX()
           
 boolean isLast()
           
private  boolean isLastX()
           
private  boolean isNull(int column)
           
private  boolean isServerCursorPositionAfterLast()
           
private  boolean isServersCursorPositionBeforeFirst()
           
private  java.sql.SQLException jdbc3MethodNotSupported()
           
 boolean last()
           
private  boolean lastX()
           
 void listenToUnitOfWork()
           
(package private)  void markAutoCommitted()
           
(package private)  void markClosed()
          Mark this ResultSet as closed.
(package private)  void markClosed(boolean removeListener)
          Mark this ResultSet as closed.
 void markClosedOnServer()
          Mark this ResultSet as closed on the server.
 void markLOBAsAccessed(int index)
          Marks the LOB at the specified column as accessed.
private  void markPositionedUpdateDeletePreparedStatementsClosed()
           
protected  void moveToAfterLast()
           
protected  void moveToBeforeFirst()
           
 void moveToCurrentRow()
           
private  void moveToCurrentRowX()
          Moves off the insert row if positioned there, and checks the current row for releasable LOB locators if positioned on a valid data row.
 void moveToInsertRow()
           
 boolean next()
           
(package private)  boolean nextX()
           
 void nullDataForGC()
           
private  void nullOutReferenceInStatement()
           
protected abstract  void parseRowset_()
           
 void parseScrollableRowset()
           
protected  void positionToCurrentRowAndDelete()
           
protected  void positionToCurrentRowAndUpdate()
           
protected abstract  void preClose_()
          Method that is invoked by closeX() before the result set is actually being closed.
 boolean previous()
           
private  boolean previousX()
           
private  java.lang.String quoteSqlIdentifier(java.lang.String orgValue)
           
private  void readAutoCommitIfNotAutoCommitted()
           
(package private)  void readClose()
           
private  void readCloseAndAutoCommit(boolean readAutoCommit)
           
abstract  void readCursorClose_()
           
 void readDeleteRow()
           
abstract  void readFetch_()
           
 void readInsertRow()
           
abstract  void readPositioningFetch_()
           
abstract  void readScrollableFetch_()
           
 void readUpdateRow()
           
 void refreshRow()
           
private  void refreshRowX()
           
 boolean relative(int rows)
           
private  boolean relativeX(int rows)
           
 boolean repositionScrollableResultSetBeforeJDBC1PositionedUpdateDelete()
           
private  void resetRowsetFlags()
           
private  void resetRowsetSqlca()
           
private  void resetUpdatedColumns()
           
private  void resetUpdatedColumnsForInsert()
           
private  boolean resultSetContainsNoRows()
           
protected  boolean rowCountIsKnown()
           
protected  boolean rowCountIsUnknown()
           
 boolean rowDeleted()
           
 boolean rowInserted()
           
private  boolean rowIsInCurrentRowset(long rowNumber)
           
private  boolean rowIsInCurrentRowset(long rowNumber, int orientation)
           
 boolean rowUpdated()
           
private  void setAbsolutePositionBasedOnAllRowsReceived()
           
 void setFetchDirection(int direction)
           
abstract  void setFetchSize_(int rows)
           
 void setFetchSize(int rows)
           
 void setRowCountEvent(long rowCount)
           
 void setRowsetAfterLastEvent()
           
 void setRowsetBeforeFirstEvent()
           
 void setRowsetNoRowsEvent()
           
 void setRSReturnability(byte rsReturnability)
           
 void setValidCursorPosition(boolean isValidCursorPosition)
           
private  void setWasNull(int column)
           
private  void unuseStreams()
           
protected  void update()
           
 void updateArray(int columnIndex, java.sql.Array x)
           
 void updateArray(java.lang.String columnName, java.sql.Array x)
           
 void updateAsciiStream(int columnIndex, java.io.InputStream x)
          Updates the designated column with an ascii stream value.
 void updateAsciiStream(int column, java.io.InputStream x, int length)
           
 void updateAsciiStream(int columnIndex, java.io.InputStream x, long length)
          Update a column with an ascii stream value.
 void updateAsciiStream(java.lang.String columnName, java.io.InputStream x)
          Updates the designated column with an ascii stream value.
 void updateAsciiStream(java.lang.String columnName, java.io.InputStream x, int length)
           
 void updateAsciiStream(java.lang.String columnName, java.io.InputStream x, long length)
          Update a column with an ascii stream value.
 void