DeveelDB  20151217
complete SQL database system, primarly developed for .NET/Mono frameworks
Classes | Public Member Functions | Static Public Member Functions | Properties | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Deveel.Data.Sql.Tables.FunctionTable Class Reference
Inheritance diagram for Deveel.Data.Sql.Tables.FunctionTable:
Deveel.Data.Sql.Tables.BaseDataTable Deveel.Data.Sql.Tables.RootTable Deveel.Data.Sql.Tables.Table Deveel.Data.Sql.Tables.IRootTable Deveel.Data.Sql.Tables.IQueryTable Deveel.Data.Transactions.ILockable Deveel.Data.Sql.Tables.ITable Deveel.Data.Sql.Tables.ITable Deveel.Data.Sql.IDbObject Deveel.Data.Sql.IDbObject

Classes

class  TableGroupResolver
 

Public Member Functions

 FunctionTable (SqlExpression[] functionList, string[] columnNames, IRequest queryContext)
 
 FunctionTable (ITable table, SqlExpression[] functionList, string[] columnNames, IRequest queryContext)
 
override IEnumerator< RowGetEnumerator ()
 
override void Lock ()
 
override void Release ()
 
override DataObject GetValue (long rowNumber, int columnOffset)
 Gets a single cell within the table that is located at the given column offset and row. More...
 
ITable MergeWith (ObjectName maxColumn)
 
FunctionTable AsGroup ()
 
FunctionTable CreateGroupMatrix (ObjectName[] columns)
 
- Public Member Functions inherited from Deveel.Data.Sql.Tables.BaseDataTable
void AddToIndex (int rowNumber, int columnNumber)
 
void AddRowToIndex (int rowNumber)
 
void RemoveRowFromIndex (int rowNumber)
 
- Public Member Functions inherited from Deveel.Data.Sql.Tables.RootTable
bool TypeEquals (IRootTable other)
 
- Public Member Functions inherited from Deveel.Data.Sql.Tables.Table
void Dispose ()
 
ColumnIndex GetIndex (int columnOffset)
 Gets an index for given column that can be used to select values from this table. More...
 

Static Public Member Functions

static ITable ResultTable (IRequest context, SqlExpression expression)
 
static ITable ResultTable (IRequest context, DataObject value)
 
static ITable ResultTable (IRequest context, int value)
 

Properties

ITable ReferenceTable [get, private set]
 
override TableInfo TableInfo [get]
 
override int RowCount [get]
 
- Properties inherited from Deveel.Data.Sql.Tables.BaseDataTable
override IContext Context [get]
 
- Properties inherited from Deveel.Data.Sql.Tables.RootTable
ObjectName TableName [get]
 
- Properties inherited from Deveel.Data.Sql.Tables.Table
abstract IContext Context [get]
 
abstract TableInfo TableInfo [get]
 
bool IsLocked [get, private set]
 
object ILockable. RefId [get]
 
int IQueryTable. ColumnCount [get]
 
virtual int ColumnCount [get]
 
abstract int RowCount [get]
 
ObjectName FullName [get]
 
DbObjectType IDbObject. ObjectType [get]
 
- Properties inherited from Deveel.Data.Sql.Tables.IQueryTable
int ColumnCount [get]
 
- Properties inherited from Deveel.Data.Sql.Tables.ITable
IContext Context [get]
 
TableInfo TableInfo [get]
 Gets the metadata information of the table, used to resolve the column sources. More...
 
int RowCount [get]
 Gets the total number of rows in the table. More...
 
- Properties inherited from Deveel.Data.Sql.IDbObject
ObjectName FullName [get]
 Gets the fully qualified name of the object used to resolve it uniquely within the database. More...
 
DbObjectType ObjectType [get]
 Gets the type of database object that the implementation is for More...
 
- Properties inherited from Deveel.Data.Transactions.ILockable
object RefId [get]
 

Private Member Functions

ITableCellCache TableCellCache ()
 
DataObject CalcValue (int row, int column, ITableCellCache cache)
 
int GetRowGroup (int rowIndex)
 
int GetGroupSize (int groupNumber)
 
IList< int > GetGroupRows (int groupNumber)
 
IList< int > GetTopRowsFromEachGroup ()
 
IList< int > GetMaxFromEachGroup (int colNum)
 

Static Private Member Functions

static void PlaceAt (IList< int > list, int index, int value)
 

Private Attributes

readonly IRequest context
 
readonly ITableVariableResolver varResolver
 
readonly TableInfo funTableInfo
 
bool wholeTableIsSimpleEnum
 
readonly int uniqueId
 
readonly byte[] expInfo
 
readonly SqlExpression[] expList
 
readonly int rowCount
 
IList< int > groupLinks
 
IList< int > groupLookup
 
TableGroupResolver groupResolver
 
bool wholeTableAsGroup
 
IList< int > wholeTableGroup
 
int wholeTableGroupSize
 

Static Private Attributes

static readonly ObjectName FunctionTableName = new ObjectName(null, "FUNCTIONTABLE")
 
static int uniqueKeySeq = 0
 

Additional Inherited Members

- Protected Member Functions inherited from Deveel.Data.Sql.Tables.BaseDataTable
 BaseDataTable ()
 
 BaseDataTable (IContext context)
 
override ObjectName GetResolvedColumnName (int column)
 
override int IndexOfColumn (ObjectName columnName)
 
virtual ColumnIndex GetColumnIndex (int columnOffset)
 
override ColumnIndex GetIndex (int column, int originalColumn, ITable table)
 
void SetupIndexes (string indexTypeName)
 
virtual void SetupIndexes (Type indexType)
 
override RawTableInfo GetRawTableInfo (RawTableInfo rootInfo)
 
override IEnumerable< int > ResolveRows (int column, IEnumerable< int > rowSet, ITable ancestor)
 
- Protected Member Functions inherited from Deveel.Data.Sql.Tables.RootTable
virtual bool IsSameTable (RootTable other)
 
- Protected Member Functions inherited from Deveel.Data.Sql.Tables.Table
virtual void Dispose (bool disposing)
 
virtual void OnLockAcquired (Lock @lock)
 
virtual void OnLockReleased (Lock @lock)
 
int FindColumn (ObjectName columnName)
 

Detailed Description

Definition at line 27 of file FunctionTable.cs.

Constructor & Destructor Documentation

Deveel.Data.Sql.Tables.FunctionTable.FunctionTable ( SqlExpression[]  functionList,
string[]  columnNames,
IRequest  queryContext 
)
inline

Definition at line 48 of file FunctionTable.cs.

49  : this(queryContext.Query.Session.Transaction.Database.SingleRowTable, functionList, columnNames, queryContext) {
50  }
Deveel.Data.Sql.Tables.FunctionTable.FunctionTable ( ITable  table,
SqlExpression[]  functionList,
string[]  columnNames,
IRequest  queryContext 
)
inline

Definition at line 52 of file FunctionTable.cs.

53  : base(queryContext.Context) {
54  // Make sure we are synchronized over the class.
55  lock (typeof(FunctionTable)) {
57  ++uniqueKeySeq;
58  }
59 
60  uniqueId = (uniqueId & 0x0FFFFFFF) | 0x010000000;
61 
62  context = queryContext;
63 
64  ReferenceTable = table;
65  varResolver = table.GetVariableResolver();
67 
68  // Create a DataTableInfo object for this function table.
70 
71  expList = new SqlExpression[functionList.Length];
72  expInfo = new byte[functionList.Length];
73 
74  // Create a new DataColumnInfo for each expression, and work out if the
75  // expression is simple or not.
76  for (int i = 0; i < functionList.Length; ++i) {
77  var expr = functionList[i];
78  // Examine the expression and determine if it is simple or not
79  if (expr.IsConstant() && !expr.HasAggregate(context)) {
80  // If expression is a constant, solve it
81  var result = expr.Evaluate(context, null);
82  if (result.ExpressionType != SqlExpressionType.Constant)
83  throw new InvalidOperationException();
84 
85  expr = result;
86  expList[i] = expr;
87  expInfo[i] = 1;
88  } else {
89  // Otherwise must be dynamic
90  expList[i] = expr;
91  expInfo[i] = 0;
92  }
93 
94  // Make the column info
95  funTableInfo.AddColumn(columnNames[i], expr.ReturnType(context, varResolver));
96  }
97 
98  // Make sure the table info isn't changed from this point on.
100 
101  // routine tables are the size of the referring table.
102  rowCount = table.RowCount;
103 
104  // Set schemes to 'blind search'.
106  }
FunctionTable(SqlExpression[] functionList, string[] columnNames, IRequest queryContext)
ITableVariableResolver ForRow(int rowIndex)
static readonly ObjectName FunctionTableName
SqlExpressionType
All the possible type of SqlExpression supported
void AddColumn(ColumnInfo column)
Adds a new column to the table at the last position of the columns list in the table metadata...
Definition: TableInfo.cs:230
TableInfo AsReadOnly()
Creates a new instance of TableInfo as an immutable copy of this table metadata.
Definition: TableInfo.cs:342
readonly ITableVariableResolver varResolver
Defines the base class for instances that represent SQL expression tree nodes.
readonly SqlExpression[] expList
void SetupIndexes(string indexTypeName)

Member Function Documentation

FunctionTable Deveel.Data.Sql.Tables.FunctionTable.AsGroup ( )
inline

Definition at line 311 of file FunctionTable.cs.

311  {
312  // TODO: create a new table ...
313  wholeTableAsGroup = true;
314 
316 
317  // Set up 'whole_table_group' to the list of all rows in the reference
318  // table.
319  var en = ReferenceTable.GetEnumerator();
320  wholeTableIsSimpleEnum = en is SimpleRowEnumerator;
321  if (!wholeTableIsSimpleEnum) {
322  wholeTableGroup = new List<int>(ReferenceTable.RowCount);
323  while (en.MoveNext()) {
324  wholeTableGroup.Add(en.Current.RowId.RowNumber);
325  }
326  }
327 
328  // Set up a group resolver for this method.
329  groupResolver = new TableGroupResolver(this);
330  return this;
331  }
int RowCount
Gets the total number of rows in the table.
Definition: ITable.cs:52
DataObject Deveel.Data.Sql.Tables.FunctionTable.CalcValue ( int  row,
int  column,
ITableCellCache  cache 
)
inlineprivate

Definition at line 165 of file FunctionTable.cs.

165  {
166  var resolver = varResolver.ForRow(row);
167 
168  if (groupResolver != null) {
170  }
171 
172  var expr = expList[column];
173  var exp = expr.Evaluate(context, resolver, groupResolver);
174  if (exp.ExpressionType != SqlExpressionType.Constant)
175  throw new ArgumentException();
176 
177  var value = ((SqlConstantExpression) exp).Value;
178  if (cache != null)
179  cache.Set(context.Query.Session.Transaction.Database.Name, uniqueId, row, column, value);
180 
181  return value;
182  }
ITableVariableResolver ForRow(int rowIndex)
ITransaction Transaction
Gets the instance of ITransaction that handles the transactional operations of this session...
Definition: ISession.cs:46
SqlExpressionType
All the possible type of SqlExpression supported
virtual SqlExpression Evaluate(EvaluateContext context)
When overridden by a derived class, this method evaluates the expression within the provided context...
ISession Session
Definition: IQuery.cs:23
readonly ITableVariableResolver varResolver
An expression that holds a constant value.
readonly SqlExpression[] expList
FunctionTable Deveel.Data.Sql.Tables.FunctionTable.CreateGroupMatrix ( ObjectName[]  columns)
inline

Definition at line 333 of file FunctionTable.cs.

333  {
334  // If we have zero rows, then don't bother creating the matrix.
335  if (RowCount <= 0 || columns.Length <= 0)
336  return this;
337 
338  var rootTable = ReferenceTable;
339  int rowCount = rootTable.RowCount;
340  int[] colLookup = new int[columns.Length];
341  for (int i = columns.Length - 1; i >= 0; --i) {
342  colLookup[i] = rootTable.IndexOfColumn(columns[i]);
343  }
344 
345  var rowList = rootTable.OrderRowsByColumns(colLookup).ToList();
346 
347  // 'row_list' now contains rows in this table sorted by the columns to
348  // group by.
349 
350  // This algorithm will generate two lists. The group_lookup list maps
351  // from rows in this table to the group number the row belongs in. The
352  // group number can be used as an index to the 'group_links' list that
353  // contains consequtive links to each row in the group until -1 is reached
354  // indicating the end of the group;
355 
356  groupLookup = new List<int>(rowCount);
357  groupLinks = new List<int>(rowCount);
358  int currentGroup = 0;
359  int previousRow = -1;
360  for (int i = 0; i < rowCount; i++) {
361  var rowIndex = rowList[i];
362 
363  if (previousRow != -1) {
364  bool equal = true;
365  // Compare cell in column in this row with previous row.
366  for (int n = 0; n < colLookup.Length && equal; ++n) {
367  var c1 = rootTable.GetValue(rowIndex, colLookup[n]);
368  var c2 = rootTable.GetValue(previousRow, colLookup[n]);
369  equal = (c1.CompareTo(c2) == 0);
370  }
371 
372  if (!equal) {
373  // If end of group, set bit 15
374  groupLinks.Add(previousRow | 0x040000000);
375  currentGroup = groupLinks.Count;
376  } else {
377  groupLinks.Add(previousRow);
378  }
379  }
380 
381  // groupLookup.Insert(row_index, current_group);
382  PlaceAt(groupLookup, rowIndex, currentGroup);
383 
384  previousRow = rowIndex;
385  }
386 
387  // Add the final row.
388  groupLinks.Add(previousRow | 0x040000000);
389 
390  // Set up a group resolver for this method.
391  groupResolver = new TableGroupResolver(this);
392 
393  return this;
394  }
static void PlaceAt(IList< int > list, int index, int value)
override IEnumerator<Row> Deveel.Data.Sql.Tables.FunctionTable.GetEnumerator ( )
inlinevirtual

Implements Deveel.Data.Sql.Tables.Table.

Definition at line 108 of file FunctionTable.cs.

108  {
109  return new SimpleRowEnumerator(this);
110  }
IList<int> Deveel.Data.Sql.Tables.FunctionTable.GetGroupRows ( int  groupNumber)
inlineprivate

Definition at line 199 of file FunctionTable.cs.

199  {
200  var rows = new List<int>();
201  var row = groupLinks[groupNumber];
202 
203  while ((row & 0x040000000) == 0) {
204  rows.Add(row);
205  ++groupNumber;
206  row = groupLinks[groupNumber];
207  }
208 
209  rows.Add(row & 0x03FFFFFFF);
210  return rows;
211  }
int Deveel.Data.Sql.Tables.FunctionTable.GetGroupSize ( int  groupNumber)
inlineprivate

Definition at line 188 of file FunctionTable.cs.

188  {
189  int groupSize = 1;
190  int i = groupLinks[groupNumber];
191  while ((i & 0x040000000) == 0) {
192  ++groupSize;
193  ++groupNumber;
194  i = groupLinks[groupNumber];
195  }
196  return groupSize;
197  }
IList<int> Deveel.Data.Sql.Tables.FunctionTable.GetMaxFromEachGroup ( int  colNum)
inlineprivate

Definition at line 229 of file FunctionTable.cs.

229  {
230  var refTab = ReferenceTable;
231 
232  var extractRows = new List<int>();
233  var size = groupLinks.Count;
234 
235  int toTakeInGroup = -1;
236  DataObject max = null;
237 
238  for (int i = 0; i < size; ++i) {
239  int row = groupLinks[i];
240 
241  int actRIndex = row & 0x03FFFFFFF;
242  var cell = refTab.GetValue(actRIndex, colNum);
243 
244  if (max == null || cell.CompareTo(max) > 0) {
245  max = cell;
246  toTakeInGroup = actRIndex;
247  }
248 
249  if ((row & 0x040000000) != 0) {
250  extractRows.Add(toTakeInGroup);
251  max = null;
252  }
253  }
254 
255  return extractRows;
256  }
int Deveel.Data.Sql.Tables.FunctionTable.GetRowGroup ( int  rowIndex)
inlineprivate

Definition at line 184 of file FunctionTable.cs.

184  {
185  return groupLookup[rowIndex];
186  }
IList<int> Deveel.Data.Sql.Tables.FunctionTable.GetTopRowsFromEachGroup ( )
inlineprivate

Definition at line 213 of file FunctionTable.cs.

213  {
214  var extractRows = new List<int>();
215  var size = groupLinks.Count;
216  var take = true;
217 
218  for (int i = 0; i < size; ++i) {
219  int r = groupLinks[i];
220  if (take)
221  extractRows.Add(r & 0x03FFFFFFF);
222 
223  take = (r & 0x040000000) != 0;
224  }
225 
226  return extractRows;
227  }
override DataObject Deveel.Data.Sql.Tables.FunctionTable.GetValue ( long  rowNumber,
int  columnOffset 
)
inlinevirtual

Gets a single cell within the table that is located at the given column offset and row.

Parameters
rowNumberThe unique number of the row where the cell is located.
columnOffsetThe zero-based offset of the column of the cell to return.
Returns
Returns an instance of DataObject that is contained in the cell located by the row and column coordinates provided.
Exceptions
ArgumentOutOfRangeExceptionIf the given columnOffset is less than zero or greater or equal than the number of columns defined in the table metadata.
See also
Tables.TableInfo.IndexOfColumn(string)

Implements Deveel.Data.Sql.Tables.Table.

Definition at line 144 of file FunctionTable.cs.

144  {
145  // [ FUNCTION TABLE CACHING NOW USES THE GLOBAL CELL CACHING MECHANISM ]
146  // Check if in the cache,
147  var cache = TableCellCache();
148 
149  // Is the column worth caching, and is caching enabled?
150  if (expInfo[columnOffset] == 0 && cache != null) {
151  DataObject cell;
152  if (cache.TryGetValue(context.Query.Session.Transaction.Database.Name, uniqueId, (int)rowNumber, columnOffset, out cell))
153  // In the cache so return the cell.
154  return cell;
155 
156  // Not in the cache so calculate the value and write it in the cache.
157  return CalcValue((int)rowNumber, columnOffset, cache);
158  }
159 
160  // Caching is not enabled
161  return CalcValue((int)rowNumber, columnOffset, null);
162 
163  }
ITransaction Transaction
Gets the instance of ITransaction that handles the transactional operations of this session...
Definition: ISession.cs:46
DataObject CalcValue(int row, int column, ITableCellCache cache)
ISession Session
Definition: IQuery.cs:23
override void Deveel.Data.Sql.Tables.FunctionTable.Lock ( )
inlinevirtual

Implements Deveel.Data.Sql.Tables.Table.

Definition at line 122 of file FunctionTable.cs.

122  {
123  // We Lock the reference table.
124  // NOTE: This cause the reference table to Lock twice when we use the
125  // 'MergeWithReference' method. While this isn't perfect behaviour, it
126  // means if 'MergeWithReference' isn't used, we still maintain a safe
127  // level of locking.
128  ReferenceTable.Lock();
129  }
ITable Deveel.Data.Sql.Tables.FunctionTable.MergeWith ( ObjectName  maxColumn)
inline

Definition at line 258 of file FunctionTable.cs.

258  {
259  var table = ReferenceTable;
260 
261  IList<int> rowList;
262 
263  if (wholeTableAsGroup) {
264  // Whole table is group, so take top entry of table.
265 
266  rowList = new List<int>(1);
267  var rowEnum = table.GetEnumerator();
268  if (rowEnum.MoveNext()) {
269  rowList.Add(rowEnum.Current.RowId.RowNumber);
270  } else {
271  // MAJOR HACK: If the referencing table has no elements then we choose
272  // an arbitary index from the reference table to merge so we have
273  // at least one element in the table.
274  // This is to fix the 'SELECT COUNT(*) FROM empty_table' bug.
275  rowList.Add(Int32.MaxValue - 1);
276  }
277  } else if (table.RowCount == 0) {
278  rowList = new List<int>(0);
279  } else if (groupLinks != null) {
280  // If we are grouping, reduce down to only include one row from each
281  // group.
282  if (maxColumn == null) {
283  rowList = GetTopRowsFromEachGroup();
284  } else {
285  var colNum = ReferenceTable.FindColumn(maxColumn);
286  rowList = GetMaxFromEachGroup(colNum);
287  }
288  } else {
289  // OPTIMIZATION: This should be optimized. It should be fairly trivial
290  // to generate a Table implementation that efficiently merges this
291  // function table with the reference table.
292 
293  // This means there is no grouping, so merge with entire table,
294  int rowCount = table.RowCount;
295  rowList = new List<int>(rowCount);
296  var en = table.GetEnumerator();
297  while (en.MoveNext()) {
298  rowList.Add(en.Current.RowId.RowNumber);
299  }
300  }
301 
302  // Create a virtual table that's the new group table merged with the
303  // functions in this...
304 
305  var tabs = new [] { table, this };
306  var rowSets = new[] { rowList, rowList };
307 
308  return new VirtualTable(tabs, rowSets);
309  }
IList< int > GetMaxFromEachGroup(int colNum)
static void Deveel.Data.Sql.Tables.FunctionTable.PlaceAt ( IList< int >  list,
int  index,
int  value 
)
inlinestaticprivate

Definition at line 396 of file FunctionTable.cs.

396  {
397  while (index > list.Count) {
398  list.Add(0);
399  }
400 
401  list.Insert(index, value);
402  }
override void Deveel.Data.Sql.Tables.FunctionTable.Release ( )
inlinevirtual

Implements Deveel.Data.Sql.Tables.Table.

Definition at line 131 of file FunctionTable.cs.

131  {
132  // We unlock the reference table.
133  // NOTE: This cause the reference table to unlock twice when we use the
134  // 'MergeWithReference' method. While this isn't perfect behaviour, it
135  // means if 'MergeWithReference' isn't used, we still maintain a safe
136  // level of locking.
137  ReferenceTable.Release();
138  }
static ITable Deveel.Data.Sql.Tables.FunctionTable.ResultTable ( IRequest  context,
SqlExpression  expression 
)
inlinestatic

Definition at line 404 of file FunctionTable.cs.

404  {
405  var exp = new [] { expression };
406  var names = new[] { "result" };
407  var table = new FunctionTable(exp, names, context);
408 
409  return new SubsetColumnTable(table, new[]{0}, new []{new ObjectName("result") });
410  }
FunctionTable(SqlExpression[] functionList, string[] columnNames, IRequest queryContext)
static ITable Deveel.Data.Sql.Tables.FunctionTable.ResultTable ( IRequest  context,
DataObject  value 
)
inlinestatic

Definition at line 412 of file FunctionTable.cs.

412  {
413  return ResultTable(context, SqlExpression.Constant(value));
414  }
static ITable ResultTable(IRequest context, SqlExpression expression)
Defines the base class for instances that represent SQL expression tree nodes.
static SqlConstantExpression Constant(object value)
static ITable Deveel.Data.Sql.Tables.FunctionTable.ResultTable ( IRequest  context,
int  value 
)
inlinestatic

Definition at line 416 of file FunctionTable.cs.

416  {
417  return ResultTable(context, DataObject.Integer(value));
418  }
static ITable ResultTable(IRequest context, SqlExpression expression)
ITableCellCache Deveel.Data.Sql.Tables.FunctionTable.TableCellCache ( )
inlineprivate

Definition at line 140 of file FunctionTable.cs.

140  {
141  return Context.ResolveService<ITableCellCache>();
142  }

Member Data Documentation

readonly IRequest Deveel.Data.Sql.Tables.FunctionTable.context
private

Definition at line 28 of file FunctionTable.cs.

readonly byte [] Deveel.Data.Sql.Tables.FunctionTable.expInfo
private

Definition at line 33 of file FunctionTable.cs.

readonly SqlExpression [] Deveel.Data.Sql.Tables.FunctionTable.expList
private

Definition at line 34 of file FunctionTable.cs.

readonly ObjectName Deveel.Data.Sql.Tables.FunctionTable.FunctionTableName = new ObjectName(null, "FUNCTIONTABLE")
staticprivate

Definition at line 44 of file FunctionTable.cs.

readonly TableInfo Deveel.Data.Sql.Tables.FunctionTable.funTableInfo
private

Definition at line 30 of file FunctionTable.cs.

IList<int> Deveel.Data.Sql.Tables.FunctionTable.groupLinks
private

Definition at line 37 of file FunctionTable.cs.

IList<int> Deveel.Data.Sql.Tables.FunctionTable.groupLookup
private

Definition at line 38 of file FunctionTable.cs.

TableGroupResolver Deveel.Data.Sql.Tables.FunctionTable.groupResolver
private

Definition at line 39 of file FunctionTable.cs.

readonly int Deveel.Data.Sql.Tables.FunctionTable.rowCount
private

Definition at line 35 of file FunctionTable.cs.

readonly int Deveel.Data.Sql.Tables.FunctionTable.uniqueId
private

Definition at line 32 of file FunctionTable.cs.

int Deveel.Data.Sql.Tables.FunctionTable.uniqueKeySeq = 0
staticprivate

Definition at line 46 of file FunctionTable.cs.

readonly ITableVariableResolver Deveel.Data.Sql.Tables.FunctionTable.varResolver
private

Definition at line 29 of file FunctionTable.cs.

bool Deveel.Data.Sql.Tables.FunctionTable.wholeTableAsGroup
private

Definition at line 40 of file FunctionTable.cs.

IList<int> Deveel.Data.Sql.Tables.FunctionTable.wholeTableGroup
private

Definition at line 41 of file FunctionTable.cs.

int Deveel.Data.Sql.Tables.FunctionTable.wholeTableGroupSize
private

Definition at line 42 of file FunctionTable.cs.

bool Deveel.Data.Sql.Tables.FunctionTable.wholeTableIsSimpleEnum
private

Definition at line 31 of file FunctionTable.cs.

Property Documentation

ITable Deveel.Data.Sql.Tables.FunctionTable.ReferenceTable
getprivate set

Definition at line 112 of file FunctionTable.cs.

override int Deveel.Data.Sql.Tables.FunctionTable.RowCount
get

Definition at line 118 of file FunctionTable.cs.

override TableInfo Deveel.Data.Sql.Tables.FunctionTable.TableInfo
get

Definition at line 114 of file FunctionTable.cs.


The documentation for this class was generated from the following file: