MCPcopy Create free account
hub / github.com/dolthub/doltgresql / translateConvertType

Function translateConvertType

server/ast/expr.go:907–937  ·  view source on GitHub ↗

translateConvertType translates the *vitess.ConvertType expression given to a new one, substituting type names as appropriate. An error is returned if the type named cannot be supported.

(convertType *vitess.ConvertType)

Source from the content-addressed store, hash-verified

905// translateConvertType translates the *vitess.ConvertType expression given to a new one, substituting type names as
906// appropriate. An error is returned if the type named cannot be supported.
907func translateConvertType(convertType *vitess.ConvertType) (*vitess.ConvertType, error) {
908 switch strings.ToLower(convertType.Type) {
909 // passthrough types that need no conversion
910 case expression.ConvertToBinary, expression.ConvertToChar, expression.ConvertToNChar, expression.ConvertToDate,
911 expression.ConvertToDatetime, expression.ConvertToFloat, expression.ConvertToDouble, expression.ConvertToJSON,
912 expression.ConvertToReal, expression.ConvertToSigned, expression.ConvertToTime, expression.ConvertToUnsigned:
913 return convertType, nil
914 case "text", "character varying", "varchar":
915 return &vitess.ConvertType{
916 Type: expression.ConvertToChar,
917 }, nil
918 case "integer", "bigint":
919 return &vitess.ConvertType{
920 Type: expression.ConvertToSigned,
921 }, nil
922 case "decimal", "numeric":
923 return &vitess.ConvertType{
924 Type: expression.ConvertToFloat,
925 }, nil
926 case "boolean":
927 return &vitess.ConvertType{
928 Type: expression.ConvertToSigned,
929 }, nil
930 case "timestamp", "timestamp with time zone", "timestamp without time zone":
931 return &vitess.ConvertType{
932 Type: expression.ConvertToDatetime,
933 }, nil
934 default:
935 return nil, errors.Errorf("unknown convert type: `%T`", convertType.Type)
936 }
937}

Callers 1

nodeExprFunction · 0.85

Calls 1

ErrorfMethod · 0.65

Tested by

no test coverage detected