public DataType(DataTypeName typeName,
bool unsigned,
bool zerofill,
bool binary,
IExpression length,
IExpression decimals,
Identifier charSet,
Identifier collation,
IList<IExpression> collectionVals)
{
// BIT[(length)]
// | TINYINT[(length)] [UNSIGNED] [ZEROFILL]
// | SMALLINT[(length)] [UNSIGNED] [ZEROFILL]
// | MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]
// | INT[(length)] [UNSIGNED] [ZEROFILL]
// | INTEGER[(length)] [UNSIGNED] [ZEROFILL]
// | BIGINT[(length)] [UNSIGNED] [ZEROFILL]
// | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
// | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
// | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
// | DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL]
// | NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL] 同上
// | DATE
// | TIME
// | TIMESTAMP
// | DATETIME
// | YEAR
// | CHAR[(length)][CHARACTER SET charset_name] [COLLATE collation_name]
// | VARCHAR(length)[CHARACTER SET charset_name] [COLLATE collation_name]
// | BINARY[(length)]
// | VARBINARY(length)
// | TINYBLOB
// | BLOB
// | MEDIUMBLOB
// | LONGBLOB
// | TINYTEXT [BINARY][CHARACTER SET charset_name] [COLLATE collation_name]
// | TEXT [BINARY][CHARACTER SET charset_name] [COLLATE collation_name]
// | MEDIUMTEXT [BINARY][CHARACTER SET charset_name] [COLLATE
// collation_name]
// | LONGTEXT [BINARY][CHARACTER SET charset_name] [COLLATE collation_name]
// | ENUM(value1,value2,value3,...)[CHARACTER SET charset_name] [COLLATE
// collation_name]
// | SET(value1,value2,value3,...)[CHARACTER SET charset_name] [COLLATE
// collation_name]
// | spatial_type 不支�?
if (typeName == DataTypeName.None)
{
throw new ArgumentException("typeName is null");
}
TypeName = typeName;
IsUnsigned = unsigned;
IsZerofill = zerofill;
IsBinary = binary;
Length = length;
Decimals = decimals;
CharSet = charSet;
Collation = collation;
CollectionVals = collectionVals;
}