Package com.mckoi.database
Class VirtualTable
java.lang.Object
com.mckoi.database.Table
com.mckoi.database.JoinedTable
com.mckoi.database.VirtualTable
- All Implemented Interfaces:
TableDataSource
A VirtualTable is a representation of a table whose rows are actually
physically stored in another table. In other words, this table just
stores pointers to rows in other tables.
We use the VirtualTable to represent temporary tables created from select, join, etc operations.
An important note about VirtualTables: When we perform a 'select' operation on a virtual table, unlike a DataTable that permanently stores information about column cell relations, we must resolve column relations between the sub-set at select time. This involves asking the tables parent(s) for a scheme to describe relations in a sub-set.
- Author:
- Tobias Downer
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected IntegerVector[]
Array of IntegerVectors that represent the rows taken from the given parents.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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected IntegerVector[]
Returns the list of IntegerVector that represents the rows that this VirtualTable references.int
Returns the number of rows stored in the table.protected void
Helper function for the constructor.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, 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
-
Field Details
-
row_list
Array of IntegerVectors that represent the rows taken from the given parents.
-
-
Constructor Details
-
VirtualTable
protected VirtualTable()
-
-
Method Details
-
init
Helper function for the constructor.- Overrides:
init
in classJoinedTable
-
getReferenceRows
Returns the list of IntegerVector that represents the rows that this VirtualTable references. -
getRowCount
public int getRowCount()Returns the number of rows stored in the table.- Specified by:
getRowCount
in interfaceTableDataSource
- Specified by:
getRowCount
in classTable
-
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 classJoinedTable
-
resolveAllRowsForTableAt
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 classJoinedTable
-