18 using System.Collections.Generic;
 
   21 namespace Deveel.Data.Sql.Tables {
 
   32             : base(new[] {left, right}) {
 
   33             leftRowCount = left.RowCount;
 
   34             rightRowCount = right.RowCount;
 
   44             leftSet = !leftIsSimpleEnum ? left.Select(x => x.RowId.RowNumber).ToList() : null;
 
   45             rightSet = !rightIsSimpleEnum ? right.Select(x => x.RowId.RowNumber).ToList() : null;
 
   48         public override int RowCount {
 
   51                 return leftRowCount * rightRowCount;
 
   59             return leftSet[rowIndex];
 
   63             if (rightIsSimpleEnum)
 
   66             return rightSet[rowIndex];
 
   70             var rowList = rowSet.ToList();
 
   71             bool pickRightTable = (tableNum == 1);
 
   72             for (
int n = rowList.Count - 1; n >= 0; --n) {
 
   77                     parentRow = GetRightRowIndex(aa % rightRowCount);
 
   79                     parentRow = GetLeftRowIndex(aa / rightRowCount);
 
   81                 rowList[n] = parentRow;
 
   84             return rowList.ToArray();
 
Defines the contract to access the data contained into a table of a database. 
 
readonly int rightRowCount
 
readonly IList< int > rightSet
 
int GetRightRowIndex(int rowIndex)
 
int GetLeftRowIndex(int rowIndex)
 
NaturallyJoinedTable(ITable left, ITable right)
 
readonly bool rightIsSimpleEnum
 
override IEnumerable< int > ResolveRowsForTable(IEnumerable< int > rowSet, int tableNum)