// construct a type from a base name, optional heading and optional user type name public static DataType Derive(DataType basetype, DataHeading heading, string username) { if (basetype == DataTypes.Table) { return(DataTypeRelation.Get(heading)); } if (basetype == DataTypes.Row) { return(DataTypeTuple.Get(heading)); } if (basetype == DataTypes.User) { return(DataTypeUser.Get(username, heading.Columns)); } return(basetype); }
static DateValue() { // FIX: better to have a lookup for this StaticDatatype = DataTypeUser.Get("date", new DataColumn[] { DataColumn.Create("super", DataTypes.Time) }); DataTypes.TypeDict[typeof(DateValue)] = StaticDatatype; }