Quadcap Embeddable Database

com.quadcap.sql.GroupByCursor Class Reference

Inheritance diagram for com.quadcap.sql.GroupByCursor:

com.quadcap.sql.FilterCursor com.quadcap.sql.CursorImpl com.quadcap.sql.TupleImpl com.quadcap.sql.Cursor com.quadcap.sql.Tuple Externalizable com.quadcap.sql.Tuple List of all members.

Detailed Description

Cursor to support SQL GROUP BY.

Author:
Stan Bailes

Definition at line 70 of file GroupByCursor.java.

Public Member Functions

 GroupByCursor (Session session, Cursor cursor, Vector groupBy) throws SQLException
Row getRow () throws SQLException
 Derived class implements this function to return the current cursor row.

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

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

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

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

boolean nextRow () throws SQLException, IOException, ClassNotFoundException
boolean isWritable (int col) throws SQLException
 Return true if the specified column is writable.

long size ()
 I honestly have no idea.

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.


Package Functions

final void swapRows ()

Package Attributes

Vector groupBy = null
int currentRowNum = 0
byte[] prevKey = new byte[32]
int prevKeyLen = -1
int[] gMap = null
BCursor bc = null
LazyRow prevRow = null
LazyRow currRow = null
boolean sameGroup = false
boolean prev = false
Key compare = null
TempTable tempTable = null


Constructor & Destructor Documentation

com.quadcap.sql.GroupByCursor.GroupByCursor Session  session,
Cursor  cursor,
Vector  groupBy
throws SQLException
 

Definition at line 84 of file GroupByCursor.java.

References com.quadcap.sql.TempTable.addRows(), com.quadcap.sql.GroupByCursor.beforeFirst(), com.quadcap.sql.Column.getColumn(), com.quadcap.sql.Tuple.getColumn(), com.quadcap.sql.Tuple.getColumnCount(), com.quadcap.sql.TempTable.getCursor(), com.quadcap.sql.GroupByCursor.gMap, com.quadcap.sql.GroupByCursor.groupBy, and com.quadcap.sql.GroupByCursor.tempTable.


Member Function Documentation

void com.quadcap.sql.GroupByCursor.beforeFirst  )  throws SQLException [virtual]
 

Position the cursor before the first row.

Reimplemented from com.quadcap.sql.FilterCursor.

Definition at line 124 of file GroupByCursor.java.

References com.quadcap.sql.GroupByCursor.bc, com.quadcap.sql.GroupByCursor.nextRow(), and com.quadcap.sql.GroupByCursor.prev.

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

void com.quadcap.sql.GroupByCursor.close  )  throws SQLException [virtual]
 

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

Reimplemented from com.quadcap.sql.FilterCursor.

Definition at line 192 of file GroupByCursor.java.

References com.quadcap.sql.GroupByCursor.bc, com.quadcap.sql.TempTable.release(), and com.quadcap.sql.GroupByCursor.tempTable.

void com.quadcap.sql.GroupByCursor.deleteRow  )  throws SQLException [virtual]
 

Delete the current cursor row.

Reimplemented from com.quadcap.sql.FilterCursor.

Definition at line 119 of file GroupByCursor.java.

Row com.quadcap.sql.GroupByCursor.getRow  )  throws SQLException [virtual]
 

Derived class implements this function to return the current cursor row.

Implementation required.

Reimplemented from com.quadcap.sql.FilterCursor.

Definition at line 109 of file GroupByCursor.java.

References com.quadcap.sql.GroupByCursor.prevRow.

boolean com.quadcap.sql.GroupByCursor.isWritable int  col  )  throws SQLException [virtual]
 

Return true if the specified column is writable.

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

Reimplemented from com.quadcap.sql.FilterCursor.

Definition at line 183 of file GroupByCursor.java.

References com.quadcap.sql.GroupByCursor.isWritable().

Referenced by com.quadcap.sql.GroupByCursor.isWritable().

boolean com.quadcap.sql.GroupByCursor.lastRowOfGroup  ) 
 

Definition at line 135 of file GroupByCursor.java.

References com.quadcap.sql.GroupByCursor.sameGroup.

Referenced by com.quadcap.sql.AggregateCursor.next().

boolean com.quadcap.sql.GroupByCursor.next  )  throws SQLException [virtual]
 

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

Reimplemented from com.quadcap.sql.FilterCursor.

Definition at line 140 of file GroupByCursor.java.

References com.quadcap.sql.GroupByCursor.nextRow(), and com.quadcap.sql.GroupByCursor.prev.

boolean com.quadcap.sql.GroupByCursor.nextRow  )  throws SQLException, IOException, ClassNotFoundException
 

Definition at line 152 of file GroupByCursor.java.

References com.quadcap.sql.GroupByCursor.bc, com.quadcap.sql.Key.compare(), com.quadcap.sql.GroupByCursor.compare, com.quadcap.sql.GroupByCursor.currRow, com.quadcap.sql.TempTable.getRow(), com.quadcap.sql.GroupByCursor.prevKey, com.quadcap.sql.GroupByCursor.prevKeyLen, com.quadcap.sql.GroupByCursor.sameGroup, com.quadcap.sql.GroupByCursor.swapRows(), and com.quadcap.sql.GroupByCursor.tempTable.

Referenced by com.quadcap.sql.GroupByCursor.beforeFirst(), and com.quadcap.sql.GroupByCursor.next().

long com.quadcap.sql.GroupByCursor.size  ) 
 

I honestly have no idea.

Reimplemented from com.quadcap.sql.FilterCursor.

Definition at line 190 of file GroupByCursor.java.

final void com.quadcap.sql.GroupByCursor.swapRows  )  [package]
 

Definition at line 176 of file GroupByCursor.java.

References com.quadcap.sql.GroupByCursor.currRow, and com.quadcap.sql.GroupByCursor.prevRow.

Referenced by com.quadcap.sql.GroupByCursor.nextRow().

void com.quadcap.sql.GroupByCursor.updateRow Row  row  )  throws SQLException [virtual]
 

Replace the current cursor row with the specified row.

Reimplemented from com.quadcap.sql.FilterCursor.

Definition at line 114 of file GroupByCursor.java.

References com.quadcap.sql.GroupByCursor.updateRow().

Referenced by com.quadcap.sql.GroupByCursor.updateRow().


Member Data Documentation

BCursor com.quadcap.sql.GroupByCursor.bc = null [package]
 

Definition at line 76 of file GroupByCursor.java.

Referenced by com.quadcap.sql.GroupByCursor.beforeFirst(), com.quadcap.sql.GroupByCursor.close(), and com.quadcap.sql.GroupByCursor.nextRow().

Key com.quadcap.sql.GroupByCursor.compare = null [package]
 

Definition at line 81 of file GroupByCursor.java.

Referenced by com.quadcap.sql.GroupByCursor.nextRow().

int com.quadcap.sql.GroupByCursor.currentRowNum = 0 [package]
 

Definition at line 72 of file GroupByCursor.java.

LazyRow com.quadcap.sql.GroupByCursor.currRow = null [package]
 

Definition at line 78 of file GroupByCursor.java.

Referenced by com.quadcap.sql.GroupByCursor.nextRow(), and com.quadcap.sql.GroupByCursor.swapRows().

int [] com.quadcap.sql.GroupByCursor.gMap = null [package]
 

Definition at line 75 of file GroupByCursor.java.

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

Vector com.quadcap.sql.GroupByCursor.groupBy = null [package]
 

Definition at line 71 of file GroupByCursor.java.

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

boolean com.quadcap.sql.GroupByCursor.prev = false [package]
 

Definition at line 80 of file GroupByCursor.java.

Referenced by com.quadcap.sql.GroupByCursor.beforeFirst(), and com.quadcap.sql.GroupByCursor.next().

byte [] com.quadcap.sql.GroupByCursor.prevKey = new byte[32] [package]
 

Definition at line 73 of file GroupByCursor.java.

Referenced by com.quadcap.sql.GroupByCursor.nextRow().

int com.quadcap.sql.GroupByCursor.prevKeyLen = -1 [package]
 

Definition at line 74 of file GroupByCursor.java.

Referenced by com.quadcap.sql.GroupByCursor.nextRow().

LazyRow com.quadcap.sql.GroupByCursor.prevRow = null [package]
 

Definition at line 77 of file GroupByCursor.java.

Referenced by com.quadcap.sql.GroupByCursor.getRow(), and com.quadcap.sql.GroupByCursor.swapRows().

boolean com.quadcap.sql.GroupByCursor.sameGroup = false [package]
 

Definition at line 79 of file GroupByCursor.java.

Referenced by com.quadcap.sql.GroupByCursor.lastRowOfGroup(), and com.quadcap.sql.GroupByCursor.nextRow().

TempTable com.quadcap.sql.GroupByCursor.tempTable = null [package]
 

Definition at line 82 of file GroupByCursor.java.

Referenced by com.quadcap.sql.GroupByCursor.close(), com.quadcap.sql.GroupByCursor.GroupByCursor(), and com.quadcap.sql.GroupByCursor.nextRow().