|
|
|
|
@ -21,7 +21,6 @@ import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
|
|
"github.com/ngaut/log"
|
|
|
|
|
"github.com/pingcap/tidb/mysql"
|
|
|
|
|
"github.com/pingcap/tidb/util/charset"
|
|
|
|
|
)
|
|
|
|
|
@ -160,7 +159,7 @@ func DefaultTypeForValue(value interface{}) *FieldType {
|
|
|
|
|
tp.Charset = charset.CharsetBin
|
|
|
|
|
tp.Collate = charset.CharsetBin
|
|
|
|
|
case string:
|
|
|
|
|
tp = NewFieldType(mysql.TypeVarchar)
|
|
|
|
|
tp = NewFieldType(mysql.TypeVarString)
|
|
|
|
|
tp.Charset = mysql.DefaultCharset
|
|
|
|
|
tp.Collate = mysql.DefaultCollationName
|
|
|
|
|
case float64:
|
|
|
|
|
@ -203,7 +202,6 @@ func DefaultTypeForValue(value interface{}) *FieldType {
|
|
|
|
|
tp = x.Type
|
|
|
|
|
default:
|
|
|
|
|
tp = NewFieldType(mysql.TypeDecimal)
|
|
|
|
|
log.Errorf("Unknown value type %T for default field type.", value)
|
|
|
|
|
}
|
|
|
|
|
return tp
|
|
|
|
|
}
|
|
|
|
|
@ -217,3 +215,868 @@ func DefaultCharsetForType(tp byte) (string, string) {
|
|
|
|
|
}
|
|
|
|
|
return charset.CharsetBin, charset.CollationBin
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// MergeFieldType merges two MySQL type to a new type.
|
|
|
|
|
// This is used in hybrid field type expression.
|
|
|
|
|
// For example "select case c when 1 then 2 when 2 then 'tidb' from t;"
|
|
|
|
|
// The resule field type of the case expression is the merged type of the two when clause.
|
|
|
|
|
// See: https://github.com/mysql/mysql-server/blob/5.7/sql/field.cc#L1042
|
|
|
|
|
func MergeFieldType(a byte, b byte) byte {
|
|
|
|
|
ia := getFieldTypeIndex(a)
|
|
|
|
|
ib := getFieldTypeIndex(b)
|
|
|
|
|
return fieldTypeMergeRules[ia][ib]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func getFieldTypeIndex(tp byte) int {
|
|
|
|
|
itp := int(tp)
|
|
|
|
|
if itp < fieldTypeTearFrom {
|
|
|
|
|
return itp
|
|
|
|
|
}
|
|
|
|
|
return fieldTypeTearFrom + itp - fieldTypeTearTo - 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
fieldTypeTearFrom = int(mysql.TypeBit) + 1
|
|
|
|
|
fieldTypeTearTo = int(mysql.TypeNewDecimal) - 1
|
|
|
|
|
fieldTypeNum = fieldTypeTearFrom + (255 - fieldTypeTearTo)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var fieldTypeMergeRules = [fieldTypeNum][fieldTypeNum]byte{
|
|
|
|
|
/* mysql.TypeDecimal -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeNewDecimal,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeNewDecimal,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeDouble, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeDecimal, mysql.TypeDecimal,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeTiny -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeTiny,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeShort, mysql.TypeLong,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeFloat, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeTiny, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeLonglong, mysql.TypeInt24,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTiny,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeShort -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeShort,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeShort, mysql.TypeLong,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeFloat, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeShort, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeLonglong, mysql.TypeInt24,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeShort,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeLong -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeLong,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeLong, mysql.TypeLong,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeDouble, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeLong, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeLonglong, mysql.TypeLong,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeLong,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeFloat -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeDouble, mysql.TypeFloat,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeFloat, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeFloat, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeFloat, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeFloat, mysql.TypeFloat,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeFloat,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeDouble, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeDouble -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeDouble, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeDouble, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeDouble, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeDouble, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeDouble, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeDouble, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeNull -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeTiny,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeShort, mysql.TypeLong,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeFloat, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeNull, mysql.TypeTimestamp,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeLonglong, mysql.TypeLonglong,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeNewDate, mysql.TypeDuration,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeDatetime, mysql.TypeYear,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeNewDate, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeBit,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeEnum,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeSet, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeGeometry,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeTimestamp -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeTimestamp, mysql.TypeTimestamp,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeDatetime, mysql.TypeDatetime,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeDatetime, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeNewDate, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeLonglong -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeLonglong,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeLonglong, mysql.TypeLonglong,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeDouble, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeLonglong, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeLonglong, mysql.TypeLong,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeLonglong,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeNewDate, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeInt24 -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeInt24,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeInt24, mysql.TypeLong,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeFloat, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeInt24, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeLonglong, mysql.TypeInt24,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeInt24,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeNewDate, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeDate -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeNewDate, mysql.TypeDatetime,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeNewDate, mysql.TypeDatetime,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeDatetime, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeNewDate, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeTime -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeDuration, mysql.TypeDatetime,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeDatetime, mysql.TypeDuration,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeDatetime, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeNewDate, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeDatetime -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeDatetime, mysql.TypeDatetime,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeDatetime, mysql.TypeDatetime,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeDatetime, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeNewDate, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeYear -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeDecimal, mysql.TypeTiny,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeShort, mysql.TypeLong,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeFloat, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeYear, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeLonglong, mysql.TypeInt24,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeYear,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeNewDate -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeNewDate, mysql.TypeDatetime,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeNewDate, mysql.TypeDatetime,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeDatetime, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeNewDate, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeVarchar -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeBit -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeBit, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeBit,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeNewDecimal -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeNewDecimal,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeNewDecimal,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeDouble, mysql.TypeDouble,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeNewDecimal,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeNewDecimal,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeNewDecimal, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeEnum -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeEnum, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeSet -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeSet, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeTinyBlob -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeTinyBlob, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeTinyBlob, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeTinyBlob, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeTinyBlob, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeTinyBlob, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeTinyBlob, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeTinyBlob, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeTinyBlob, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeTinyBlob, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeTinyBlob, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeTinyBlob, mysql.TypeTinyBlob,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeMediumBlob -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeMediumBlob,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeMediumBlob,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeMediumBlob,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeMediumBlob,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeMediumBlob,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeMediumBlob,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeMediumBlob,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeMediumBlob,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeMediumBlob,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeMediumBlob,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeMediumBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeMediumBlob,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeMediumBlob,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeLongBlob -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeLongBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeLongBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeLongBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeLongBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeLongBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeLongBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeLongBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeLongBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeLongBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeLongBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeLongBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeLongBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeLongBlob, mysql.TypeLongBlob,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeBlob -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeBlob, mysql.TypeBlob,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeBlob, mysql.TypeBlob,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeBlob, mysql.TypeBlob,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeBlob, mysql.TypeBlob,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeBlob, mysql.TypeBlob,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeBlob, mysql.TypeBlob,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeBlob, mysql.TypeBlob,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeBlob, mysql.TypeBlob,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeBlob,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeBlob, mysql.TypeBlob,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeBlob, mysql.TypeBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeBlob,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeBlob, mysql.TypeBlob,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeVarString -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeString -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeString, mysql.TypeString,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeString, mysql.TypeString,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeString, mysql.TypeString,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeString, mysql.TypeString,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeString, mysql.TypeString,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeString, mysql.TypeString,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeString, mysql.TypeString,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeString, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeString,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeString, mysql.TypeString,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeString, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeString,
|
|
|
|
|
},
|
|
|
|
|
/* mysql.TypeGeometry -> */
|
|
|
|
|
{
|
|
|
|
|
//mysql.TypeDecimal mysql.TypeTiny
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeShort mysql.TypeLong
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeFloat mysql.TypeDouble
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNull mysql.TypeTimestamp
|
|
|
|
|
mysql.TypeGeometry, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeLonglong mysql.TypeInt24
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDate mysql.TypeTime
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeDatetime mysql.TypeYear
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDate mysql.TypeVarchar
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeBit <16>-<245>
|
|
|
|
|
mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeNewDecimal mysql.TypeEnum
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeSet mysql.TypeTinyBlob
|
|
|
|
|
mysql.TypeVarchar, mysql.TypeTinyBlob,
|
|
|
|
|
//mysql.TypeMediumBlob mysql.TypeLongBlob
|
|
|
|
|
mysql.TypeMediumBlob, mysql.TypeLongBlob,
|
|
|
|
|
//mysql.TypeBlob mysql.TypeVarString
|
|
|
|
|
mysql.TypeBlob, mysql.TypeVarchar,
|
|
|
|
|
//mysql.TypeString mysql.TypeGeometry
|
|
|
|
|
mysql.TypeString, mysql.TypeGeometry,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|