本文整理汇总了Golang中github.com/pingcap/tidb/util/types.FieldType.Flen方法的典型用法代码示例。如果您正苦于以下问题:Golang FieldType.Flen方法的具体用法?Golang FieldType.Flen怎么用?Golang FieldType.Flen使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/pingcap/tidb/util/types.FieldType
的用法示例。
在下文中一共展示了FieldType.Flen方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: ProtoColumnsToFieldTypes
// ProtoColumnsToFieldTypes converts tipb column info slice to FieldTyps slice.
func ProtoColumnsToFieldTypes(pColumns []*tipb.ColumnInfo) []*types.FieldType {
fields := make([]*types.FieldType, len(pColumns))
for i, v := range pColumns {
field := new(types.FieldType)
field.Tp = byte(v.GetTp())
field.Collate = mysql.Collations[byte(v.GetCollation())]
field.Decimal = int(v.GetDecimal())
field.Flen = int(v.GetColumnLen())
field.Flag = uint(v.GetFlag())
field.Elems = v.GetElems()
fields[i] = field
}
return fields
}
示例2: setCharsetCollationFlenDecimal
func (d *ddl) setCharsetCollationFlenDecimal(tp *types.FieldType) {
if len(tp.Charset) == 0 {
switch tp.Tp {
case mysql.TypeString, mysql.TypeVarchar, mysql.TypeVarString, mysql.TypeBlob, mysql.TypeTinyBlob, mysql.TypeMediumBlob, mysql.TypeLongBlob:
tp.Charset, tp.Collate = getDefaultCharsetAndCollate()
default:
tp.Charset = charset.CharsetBin
tp.Collate = charset.CharsetBin
}
}
// If flen is not assigned, assigned it by type.
if tp.Flen == types.UnspecifiedLength {
tp.Flen = mysql.GetDefaultFieldLength(tp.Tp)
}
if tp.Decimal == types.UnspecifiedLength {
tp.Decimal = mysql.GetDefaultDecimal(tp.Tp)
}
}