com.mckoi.database
Class NaturallyJoinedTable

java.lang.Object
  extended by com.mckoi.database.Table
      extended by com.mckoi.database.JoinedTable
          extended by com.mckoi.database.NaturallyJoinedTable
All Implemented Interfaces:
TableDataSource

public final class NaturallyJoinedTable
extends JoinedTable

A table that is the cartesian product of two tables. This provides better memory-use and efficiency than a materialized table backed by a VirtualTable.

Author:
Tobias Downer

Field Summary
 
Fields inherited from class com.mckoi.database.JoinedTable
column_filter, column_scheme, column_table, reference_list
 
Fields inherited from class com.mckoi.database.Table
DEBUG_QUERY
 
Constructor Summary
NaturallyJoinedTable(Table left, Table right)
          Constructs the table.
 
Method Summary
 int getRowCount()
          Returns the number of rows stored in the table.
protected  void resolveAllRowsForTableAt(IntegerVector row_set, int table_num)
          Given an IntegerVector that represents a list of pointers to rows in this table, this resolves the rows to row indexes in the given parent table.
protected  int resolveRowForTableAt(int row_number, int table_num)
          Given a row and a table index (to a parent reference table), this will return the row index in the given parent table for the given row.
 
Methods inherited from class com.mckoi.database.JoinedTable
findFieldName, getCellContents, getColumnCount, getDatabase, getDataTableDef, getReferenceTables, getResolvedVariable, hasRootsLocked, init, lockRoot, printGraph, rowEnumeration, unlockRoot
 
Methods inherited from class com.mckoi.database.Table
all, allColumnMatchesValue, any, columnContainsCell, columnContainsValue, columnMatchesValue, columnMerge, compareCells, Debug, distinct, distinct, dumpTo, emptySelect, exhaustiveSelect, fastFindFieldName, getColumnDefAt, getColumnScheme, getFirstCellContent, getFirstCellContent, getLastCellContent, getLastCellContent, getSingleCellContent, getSingleCellContent, getSystem, getTableAccessState, getTTypeForColumn, getTTypeForColumn, join, orderByColumn, orderByColumn, orderByColumn, orderByColumns, orderedRowList, outside, rangeSelect, selectAll, selectAll, selectFirst, selectLast, selectRange, selectRest, simpleJoin, simpleSelect, singleRowSelect, toMap, toString, union
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NaturallyJoinedTable

public NaturallyJoinedTable(Table left,
                            Table right)
Constructs the table.

Method Detail

getRowCount

public int getRowCount()
Description copied from class: Table
Returns the number of rows stored in the table.

Specified by:
getRowCount in interface TableDataSource
Specified by:
getRowCount in class Table

resolveRowForTableAt

protected int resolveRowForTableAt(int row_number,
                                   int table_num)
Description copied from class: JoinedTable
Given a row and a table index (to a parent reference table), this will return the row index in the given parent table for the given row.

Specified by:
resolveRowForTableAt in class JoinedTable

resolveAllRowsForTableAt

protected void resolveAllRowsForTableAt(IntegerVector row_set,
                                        int table_num)
Description copied from class: JoinedTable
Given an IntegerVector that represents a list of pointers to rows in this table, this resolves the rows to row indexes in the given parent table. This method changes the 'row_set' IntegerVector object.

Specified by:
resolveAllRowsForTableAt in class JoinedTable