code: func (ft *FieldType) String() string {
  	strs := []string{ft.CompactStr()}
  	if mysql.HasUnsignedFlag(ft.Flag) {
  		strs = append(strs, "UNSIGNED")
  	}
  	if mysql.HasZerofillFlag(ft.Flag) {
  		strs = append(strs, "ZEROFILL")
  	}
  	if mysql.HasBinaryFlag(ft.Flag) {
  		strs = append(strs, "BINARY")
  	}
  
  	if IsTypeChar(ft.Tp) || IsTypeBlob(ft.Tp) {
  		if ft.Charset != "" && ft.Charset != charset.CharsetBin {
  			strs = append(strs, fmt.Sprintf("CHARACTER SET %s", ft.Charset))
  		}
  		if ft.Collate != "" && ft.Collate != charset.CharsetBin {
  			strs = append(strs, fmt.Sprintf("COLLATE %s", ft.Collate))
  		}
  	}
  
  	return strings.Join(strs, " ")
  }
docs: // String joins the information of FieldType and
  // returns a string.