Quadcap Embeddable Database

com.quadcap.sql.Cursor Interface Reference

Inheritance diagram for com.quadcap.sql.Cursor:

com.quadcap.sql.Tuple com.quadcap.sql.CursorImpl com.quadcap.sql.BC_Cursor com.quadcap.sql.FilterCursor com.quadcap.sql.ItemsCursor com.quadcap.sql.JoinCursor com.quadcap.sql.MergeCursor com.quadcap.sql.StaticCursor com.quadcap.sql.ViewCursor com.quadcap.sql.DistinctCursor com.quadcap.sql.IndexCursor com.quadcap.sql.OrderByCursor com.quadcap.sql.AggregateCursor com.quadcap.sql.GroupByCursor com.quadcap.sql.HavingCursor com.quadcap.sql.MultiCursor com.quadcap.sql.PredicateCursor com.quadcap.sql.RenameCursor com.quadcap.sql.JoinCrossCursor com.quadcap.sql.JoinInnerCursor com.quadcap.sql.JoinUnionCursor com.quadcap.sql.meta.MetaCursor List of all members.

Detailed Description

The base cursor interface.

Author:
Stan Bailes

Definition at line 52 of file Cursor.java.

Public Member Functions

Row getRow () throws SQLException
 Return the cursor's current row.

void insertRow (Row row) throws SQLException
 Insert the specified row into the cursor's underlying table.

void updateRow (Row row) throws SQLException
 Replace the current cursor row with the specified row.

void deleteRow () throws SQLException
 Delete the current cursor row.

long getRowId ()
 Some cursors have rows where the rows can be identified by row id, and sometimes the cursors even know the row id for the current row.

void beforeFirst () throws SQLException
 Position the cursor before the first row.

void afterLast () throws SQLException
 Position the cursor after the last row.

boolean absolute (int row) throws SQLException
 Move to the specified absolute row.

boolean next () throws SQLException
 Advance the cursor and return true if we advanced to a valid row.

boolean prev () throws SQLException
 Move the cursor back one row and return true if we moved back to a valid row.

void close () throws SQLException
 Close the cursor and free up any resources (including closing the cursor's transaction if that is feasible) used by the cursor.

long size () throws SQLException
 If the underlying implementation knows, or can compute cheaply, the actual size of the ResultSet, it should return a non-negative number here.

boolean isWritable (int column) throws SQLException
 Return true if the specified column is writable.

Cursor getOuterCursor ()
 Return the cursor in the enclosing context (this applies if we're in a sub-query, for example).

void setOuterCursor (Cursor outer)
 Set the cursor context in which this subquery is executing.

Session getSession ()
 Return the cursor's session.

Table getTable ()
 Some cursors are, or can be viewed as, tables.

void reset (Expression where, Cursor outer) throws SQLException
 An attempt at an API to allow cursor reuse.


Member Function Documentation

boolean com.quadcap.sql.Cursor.absolute int  row  )  throws SQLException
 

Move to the specified absolute row.

The first row is '1'. absolute(-1) moves to the last row. absolute(0) throws an exception.

Parameters:
row if > 0 the (one-based) row number else negative offset from last row in cursor.
Returns:
true if the specified row can be successfully positioned.

Implemented in com.quadcap.sql.BC_Cursor, com.quadcap.sql.CursorImpl, com.quadcap.sql.FilterCursor, com.quadcap.sql.PredicateCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.ViewCursor.absolute(), and com.quadcap.sql.FilterCursor.absolute().

void com.quadcap.sql.Cursor.afterLast  )  throws SQLException
 

Position the cursor after the last row.

Implemented in com.quadcap.sql.BC_Cursor, com.quadcap.sql.CursorImpl, com.quadcap.sql.FilterCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.ViewCursor.afterLast(), com.quadcap.sql.ItemsCursor.afterLast(), and com.quadcap.sql.FilterCursor.afterLast().

void com.quadcap.sql.Cursor.beforeFirst  )  throws SQLException
 

Position the cursor before the first row.

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.CursorImpl, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.MultiCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.ViewCursor.beforeFirst(), com.quadcap.sql.MultiCursor.beforeFirst(), com.quadcap.sql.JoinCursor.beforeFirst(), com.quadcap.sql.ItemsCursor.beforeFirst(), com.quadcap.sql.FilterCursor.beforeFirst(), com.quadcap.sql.AggregateCursor.beforeFirst(), com.quadcap.sql.JoinCursor.bfirst(), com.quadcap.sql.InExpression.InSessionState.init(), com.quadcap.sql.InExpression.InSessionState.matchCorrelated(), and com.quadcap.sql.MultiCursor.next().

void com.quadcap.sql.Cursor.close  )  throws SQLException
 

Close the cursor and free up any resources (including closing the cursor's transaction if that is feasible) used by the cursor.

Exceptions:
SQLException may be thrown

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.CursorImpl, com.quadcap.sql.DistinctCursor, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.JoinInnerCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.MultiCursor, com.quadcap.sql.OrderByCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.CheckConstraint.add(), com.quadcap.sql.View.addColumns(), com.quadcap.sql.DistinctCursor.checkCursor(), com.quadcap.sql.ViewCursor.close(), com.quadcap.sql.JoinCursor.close(), com.quadcap.sql.ItemsCursor.close(), com.quadcap.sql.FilterCursor.close(), com.quadcap.sql.DistinctCursor.close(), com.quadcap.sql.AggregateCursor.close(), com.quadcap.sql.Session.closeCursors(), com.quadcap.sql.StmtUpdate.execute(), com.quadcap.sql.StmtInsert.execute(), com.quadcap.sql.StmtDelete.execute(), com.quadcap.sql.UnaryExpression.existsValue(), com.quadcap.sql.MergeExpression.getCursor(), com.quadcap.sql.SelectExpression.getValue(), com.quadcap.sql.QuantifiedCompare.getValue(), com.quadcap.sql.InExpression.getValue2(), com.quadcap.sql.InExpression.InSessionState.init(), com.quadcap.sql.View.insertRow(), com.quadcap.sql.InExpression.InSessionState.matchCorrelated(), com.quadcap.sql.SelectExpression.optimizeAggregate(), and com.quadcap.sql.UnaryExpression.uniqueValue().

void com.quadcap.sql.Cursor.deleteRow  )  throws SQLException
 

Delete the current cursor row.

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.CursorImpl, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.ViewCursor.deleteRow(), com.quadcap.sql.ItemsCursor.deleteRow(), com.quadcap.sql.FilterCursor.deleteRow(), and com.quadcap.sql.StmtDelete.execute().

Cursor com.quadcap.sql.Cursor.getOuterCursor  ) 
 

Return the cursor in the enclosing context (this applies if we're in a sub-query, for example).

Implemented in com.quadcap.sql.CursorImpl.

Referenced by com.quadcap.sql.FilterCursor.FilterCursor().

Row com.quadcap.sql.Cursor.getRow  )  throws SQLException
 

Return the cursor's current row.

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.CursorImpl, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.HavingCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.PredicateCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.JoinCursor.anext(), com.quadcap.sql.JoinCursor.bnext(), com.quadcap.sql.StmtUpdate.execute(), com.quadcap.sql.StmtInsert.execute(), com.quadcap.sql.ViewCursor.getRow(), com.quadcap.sql.ItemsCursor.getRow(), com.quadcap.sql.FilterCursor.getRow(), com.quadcap.sql.SelectExpression.getValue(), com.quadcap.sql.QuantifiedCompare.getValue(), com.quadcap.sql.NameExpression.getValue(), com.quadcap.sql.InExpression.getValue2(), com.quadcap.sql.InExpression.InSessionState.init(), com.quadcap.sql.ItemsCursor.makeFirstRow(), com.quadcap.sql.JoinInnerCursor.makeTemporaryIndexForTable(), com.quadcap.sql.JoinInnerCursor.makeTemporaryIndexForView(), com.quadcap.sql.InExpression.InSessionState.matchCorrelated(), com.quadcap.sql.PredicateCursor.next(), com.quadcap.sql.HavingCursor.next(), com.quadcap.sql.AggregateCursor.next(), com.quadcap.sql.PredicateCursor.prev(), and com.quadcap.sql.UnaryExpression.uniqueValue().

long com.quadcap.sql.Cursor.getRowId  ) 
 

Some cursors have rows where the rows can be identified by row id, and sometimes the cursors even know the row id for the current row.

If you know, tell us here! If you don't know, just return 0.

Implemented in com.quadcap.sql.BC_Cursor, com.quadcap.sql.CursorImpl, com.quadcap.sql.FilterCursor, and com.quadcap.sql.MergeCursor.

Referenced by com.quadcap.sql.FilterCursor.getRowId(), and com.quadcap.sql.JoinInnerCursor.makeTemporaryIndexForTable().

Session com.quadcap.sql.Cursor.getSession  ) 
 

Return the cursor's session.

Implemented in com.quadcap.sql.CursorImpl.

Table com.quadcap.sql.Cursor.getTable  ) 
 

Some cursors are, or can be viewed as, tables.

If your cursor is such a type, return your table here, otherwise simply return null.

Implemented in com.quadcap.sql.CursorImpl, and com.quadcap.sql.IndexCursor.

void com.quadcap.sql.Cursor.insertRow Row  row  )  throws SQLException
 

Insert the specified row into the cursor's underlying table.

Implemented in com.quadcap.sql.CursorImpl, com.quadcap.sql.FilterCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.ViewCursor.insertRow(), com.quadcap.sql.View.insertRow(), com.quadcap.sql.ItemsCursor.insertRow(), and com.quadcap.sql.FilterCursor.insertRow().

boolean com.quadcap.sql.Cursor.isWritable int  column  )  throws SQLException
 

Return true if the specified column is writable.

Parameters:
column the (one-based) column number
Exceptions:
SQLException may be thrown

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.CursorImpl, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.ViewCursor.isWritable(), com.quadcap.sql.ItemsCursor.isWritable(), and com.quadcap.sql.FilterCursor.isWritable().

boolean com.quadcap.sql.Cursor.next  )  throws SQLException
 

Advance the cursor and return true if we advanced to a valid row.

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.CursorImpl, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.HavingCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.JoinUnionCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.MultiCursor, com.quadcap.sql.PredicateCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.CheckConstraint.add(), com.quadcap.sql.JoinCursor.anext(), com.quadcap.sql.JoinCursor.bnext(), com.quadcap.sql.StmtUpdate.execute(), com.quadcap.sql.StmtInsert.execute(), com.quadcap.sql.StmtDelete.execute(), com.quadcap.sql.UnaryExpression.existsValue(), com.quadcap.sql.SelectExpression.getValue(), com.quadcap.sql.QuantifiedCompare.getValue(), com.quadcap.sql.InExpression.getValue2(), com.quadcap.sql.InExpression.InSessionState.init(), com.quadcap.sql.JoinInnerCursor.makeTemporaryIndexForTable(), com.quadcap.sql.JoinInnerCursor.makeTemporaryIndexForView(), com.quadcap.sql.InExpression.InSessionState.matchCorrelated(), com.quadcap.sql.ViewCursor.next(), com.quadcap.sql.PredicateCursor.next(), com.quadcap.sql.MultiCursor.next(), com.quadcap.sql.ItemsCursor.next(), com.quadcap.sql.HavingCursor.next(), com.quadcap.sql.FilterCursor.next(), com.quadcap.sql.AggregateCursor.next(), and com.quadcap.sql.UnaryExpression.uniqueValue().

boolean com.quadcap.sql.Cursor.prev  )  throws SQLException
 

Move the cursor back one row and return true if we moved back to a valid row.

Implemented in com.quadcap.sql.BC_Cursor, com.quadcap.sql.CursorImpl, com.quadcap.sql.FilterCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.MultiCursor, com.quadcap.sql.PredicateCursor, and com.quadcap.sql.StaticCursor.

Referenced by com.quadcap.sql.PredicateCursor.prev(), and com.quadcap.sql.FilterCursor.prev().

void com.quadcap.sql.Cursor.reset Expression  where,
Cursor  outer
throws SQLException
 

An attempt at an API to allow cursor reuse.

Implemented in com.quadcap.sql.CursorImpl, and com.quadcap.sql.IndexCursor.

void com.quadcap.sql.Cursor.setOuterCursor Cursor  outer  ) 
 

Set the cursor context in which this subquery is executing.

Parameters:
outer the cursor from the outer context

Implemented in com.quadcap.sql.CursorImpl, com.quadcap.sql.FilterCursor, and com.quadcap.sql.ItemsCursor.

Referenced by com.quadcap.sql.SelectExpression.getCursor(), com.quadcap.sql.ItemsCursor.setOuterCursor(), and com.quadcap.sql.FilterCursor.setOuterCursor().

long com.quadcap.sql.Cursor.size  )  throws SQLException
 

If the underlying implementation knows, or can compute cheaply, the actual size of the ResultSet, it should return a non-negative number here.

If the size is unknown and it would be expensive to compute it (i.e., on the order of while next()) size++), then the implementation should return -1

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.ItemsCursor.size(), and com.quadcap.sql.FilterCursor.size().

void com.quadcap.sql.Cursor.updateRow Row  row  )  throws SQLException
 

Replace the current cursor row with the specified row.

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.CursorImpl, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.HavingCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.StmtUpdate.execute(), com.quadcap.sql.ViewCursor.updateRow(), com.quadcap.sql.ItemsCursor.updateRow(), com.quadcap.sql.HavingCursor.updateRow(), and com.quadcap.sql.FilterCursor.updateRow().