DeveelDB  20151217
complete SQL database system, primarly developed for .NET/Mono frameworks
Classes | Public Member Functions | Protected Member Functions | Properties | Private Member Functions | Private Attributes | List of all members
Deveel.Data.SystemSchema.SqlTypesTable Class Reference
Inheritance diagram for Deveel.Data.SystemSchema.SqlTypesTable:
Deveel.Data.Sql.Tables.GeneratedTable Deveel.Data.Sql.Tables.ITable Deveel.Data.Sql.IDbObject

Classes

class  SqlTypeInfo
 

Public Member Functions

 SqlTypesTable (ITransaction transaction)
 
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...
 
- Public Member Functions inherited from Deveel.Data.Sql.Tables.GeneratedTable
IEnumerator< RowGetEnumerator ()
 
virtual ColumnIndex GetIndex (int columnOffset)
 Gets an index for given column that can be used to select values from this table. More...
 
void Dispose ()
 

Protected Member Functions

override void Dispose (bool disposing)
 
- Protected Member Functions inherited from Deveel.Data.Sql.Tables.GeneratedTable
 GeneratedTable (IContext dbContext)
 
DataObject GetColumnValue (int column, ISqlObject obj)
 

Properties

override TableInfo TableInfo [get]
 
override int RowCount [get]
 
- Properties inherited from Deveel.Data.Sql.Tables.GeneratedTable
IContext Context [get, private set]
 
ObjectName IDbObject. FullName [get]
 
DbObjectType IDbObject. ObjectType [get]
 
abstract TableInfo TableInfo [get]
 
abstract int RowCount [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...
 

Private Member Functions

void AddType (string name, string localName, SqlTypeCode type, byte precision, string prefix, string suffix, bool searchable)
 
void Init ()
 

Private Attributes

ITransaction transaction
 
List< SqlTypeInfosqlTypes
 

Detailed Description

Definition at line 617 of file SystemSchema.cs.

Constructor & Destructor Documentation

Deveel.Data.SystemSchema.SqlTypesTable.SqlTypesTable ( ITransaction  transaction)
inline

Definition at line 621 of file SystemSchema.cs.

622  : base(transaction.Database.Context) {
623  this.transaction = transaction;
624 
625  sqlTypes = new List<SqlTypeInfo>();
626 
627  Init();
628  }
IDatabase Database
Gets the database this transaction belongs to.
Definition: ITransaction.cs:48
new IDatabaseContext Context
Gets the context that contains this database.
Definition: IDatabase.cs:50

Member Function Documentation

void Deveel.Data.SystemSchema.SqlTypesTable.AddType ( string  name,
string  localName,
SqlTypeCode  type,
byte  precision,
string  prefix,
string  suffix,
bool  searchable 
)
inlineprivate

Definition at line 638 of file SystemSchema.cs.

638  {
639  sqlTypes.Add(new SqlTypeInfo {
640  TypeName = name,
641  LocalName = localName,
642  Type = type,
643  Precision = precision,
644  LiteralPrefix = prefix,
645  LiteralSuffix = suffix,
646  Searchable = (byte)(searchable ? 3 : 0)
647  });
648  }
A user-defined TYPE that holds complex objects in a database column.
override void Deveel.Data.SystemSchema.SqlTypesTable.Dispose ( bool  disposing)
inlineprotectedvirtual

Reimplemented from Deveel.Data.Sql.Tables.GeneratedTable.

Definition at line 725 of file SystemSchema.cs.

725  {
726  transaction = null;
727  sqlTypes = null;
728 
729  base.Dispose(disposing);
730  }
override DataObject Deveel.Data.SystemSchema.SqlTypesTable.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.GeneratedTable.

Definition at line 675 of file SystemSchema.cs.

675  {
676  // TODO: handle also the user-types here?
677 
678  if (rowNumber < 0 || rowNumber >= sqlTypes.Count)
679  throw new ArgumentOutOfRangeException("rowNumber");
680 
681  var typeInfo = sqlTypes[(int)rowNumber];
682  switch (columnOffset) {
683  case 0: // type_name
684  return GetColumnValue(columnOffset, new SqlString(typeInfo.TypeName));
685  case 1: // data_type
686  return GetColumnValue(columnOffset, new SqlNumber((int)typeInfo.Type));
687  case 2: // precision
688  return GetColumnValue(columnOffset, new SqlNumber(typeInfo.Precision));
689  case 3: // literal_prefix
690  return GetColumnValue(columnOffset, new SqlString(typeInfo.LiteralPrefix));
691  case 4: // literal_suffix
692  return GetColumnValue(columnOffset, new SqlString(typeInfo.LiteralSuffix));
693  case 5: // create_params
694  return GetColumnValue(columnOffset, SqlString.Null);
695  case 6: // nullable
696  return GetColumnValue(columnOffset, SqlNumber.One);
697  case 7: // case_sensitive
698  return GetColumnValue(columnOffset, SqlBoolean.True);
699  case 8: // searchable
700  return GetColumnValue(columnOffset, new SqlNumber(typeInfo.Searchable));
701  case 9: // unsigned_attribute
702  return GetColumnValue(columnOffset, SqlBoolean.False);
703  case 10: // fixed_prec_scale
704  return GetColumnValue(columnOffset, SqlBoolean.False);
705  case 11: // auto_increment
706  return GetColumnValue(columnOffset, SqlBoolean.False);
707  case 12: // local_type_name
708  return GetColumnValue(columnOffset, new SqlString(typeInfo.LocalName));
709  case 13: // minimum_scale
710  return GetColumnValue(columnOffset, SqlNumber.Zero);
711  case 14: // maximum_scale
712  return GetColumnValue(columnOffset, new SqlNumber(10000000));
713  case 15: // sql_data_type
714  return GetColumnValue(columnOffset, SqlNull.Value);
715  case 16: // sql_datetype_sub
716  return GetColumnValue(columnOffset, SqlNull.Value);
717  case 17: // num_prec_radix
718  return GetColumnValue(columnOffset, new SqlNumber(10));
719  default:
720  throw new ArgumentOutOfRangeException("columnOffset");
721 
722  }
723  }
static readonly SqlNull Value
Definition: SqlNull.cs:24
DataObject GetColumnValue(int column, ISqlObject obj)
static readonly SqlNumber Zero
Definition: SqlNumber.cs:29
static readonly SqlNumber One
Definition: SqlNumber.cs:30
Deveel.Data.Sql.Objects.SqlString SqlString
Definition: DataObject.cs:27
void Deveel.Data.SystemSchema.SqlTypesTable.Init ( )
inlineprivate

Definition at line 650 of file SystemSchema.cs.

650  {
651  AddType("BIT", "BOOLEAN", SqlTypeCode.Bit, 1, null, null, true);
652  AddType("BOOLEAN", "BOOLEAN", SqlTypeCode.Boolean, 1, null, null, true);
653  AddType("TINYINT", "NUMBER", SqlTypeCode.TinyInt, 9, null, null, true);
654  AddType("SMALLINT", "NUMBER", SqlTypeCode.SmallInt, 9, null, null, true);
655  AddType("INTEGER", "NUMBER", SqlTypeCode.Integer, 9, null, null, true);
656  AddType("BIGINT", "NUMBER", SqlTypeCode.BigInt, 9, null, null, true);
657  AddType("FLOAT", "NUMBER", SqlTypeCode.Float, 9, null, null, true);
658  AddType("REAL", "NUMBER", SqlTypeCode.Real, 9, null, null, true);
659  AddType("DOUBLE", "NUMBER", SqlTypeCode.Double, 9, null, null, true);
660  AddType("NUMERIC", "NUMBER", SqlTypeCode.Numeric, 9, null, null, true);
661  AddType("DECIMAL", "NUMBER", SqlTypeCode.Decimal, 9, null, null, true);
662  AddType("CHAR", "STRING", SqlTypeCode.Char, 9, "'", "'", true);
663  AddType("VARCHAR", "STRING", SqlTypeCode.VarChar, 9, "'", "'", true);
664  AddType("LONGVARCHAR", "STRING", SqlTypeCode.LongVarChar, 9, "'", "'", true);
665  AddType("DATE", "DATETIME", SqlTypeCode.Date, 9, null, null, true);
666  AddType("TIME", "DATETIME", SqlTypeCode.Time, 9, null, null, true);
667  AddType("TIMESTAMP", "DATETIME", SqlTypeCode.TimeStamp, 9, null, null, true);
668  AddType("BINARY", "BINARY", SqlTypeCode.Binary, 9, null, null, false);
669  AddType("VARBINARY", "BINARY", SqlTypeCode.VarBinary, 9, null, null, false);
670  AddType("LONGVARBINARY", "BINARY", SqlTypeCode.LongVarBinary, 9, null, null, false);
671  AddType("OBJECT", "OBJECT", SqlTypeCode.Object, 9, null, null, false);
672  AddType("TYPE", "TYPE", SqlTypeCode.Type, 9, null, null, false);
673  }
SqlTypeCode
Enumerates the codes of all SQL types handled by the system.
Definition: SqlTypeCode.cs:23
void AddType(string name, string localName, SqlTypeCode type, byte precision, string prefix, string suffix, bool searchable)

Member Data Documentation

List<SqlTypeInfo> Deveel.Data.SystemSchema.SqlTypesTable.sqlTypes
private

Definition at line 619 of file SystemSchema.cs.

ITransaction Deveel.Data.SystemSchema.SqlTypesTable.transaction
private

Definition at line 618 of file SystemSchema.cs.

Property Documentation

override int Deveel.Data.SystemSchema.SqlTypesTable.RowCount
get

Definition at line 634 of file SystemSchema.cs.

override TableInfo Deveel.Data.SystemSchema.SqlTypesTable.TableInfo
get

Definition at line 630 of file SystemSchema.cs.


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