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

Method Zero

server/types/type.go:1074–1115  ·  view source on GitHub ↗

Zero implements the types.ExtendedType interface.

()

Source from the content-addressed store, hash-verified

1072
1073// Zero implements the types.ExtendedType interface.
1074func (t *DoltgresType) Zero() interface{} {
1075 // TODO: need better way to get accurate result
1076 switch t.TypCategory {
1077 case TypeCategory_ArrayTypes:
1078 return []any{}
1079 case TypeCategory_BooleanTypes:
1080 return false
1081 case TypeCategory_CompositeTypes, TypeCategory_EnumTypes, TypeCategory_GeometricTypes, TypeCategory_NetworkAddressTypes,
1082 TypeCategory_RangeTypes, TypeCategory_PseudoTypes, TypeCategory_UserDefinedTypes, TypeCategory_BitStringTypes,
1083 TypeCategory_InternalUseTypes:
1084 return any(nil)
1085 case TypeCategory_DateTimeTypes:
1086 return time.Time{}
1087 case TypeCategory_NumericTypes:
1088 switch t.ID.TypeName() {
1089 case "float4":
1090 return float32(0)
1091 case "float8":
1092 return float64(0)
1093 case "int2":
1094 return int16(0)
1095 case "int4":
1096 return int32(0)
1097 case "int8":
1098 return int64(0)
1099 case "numeric":
1100 return apd.New(0, 0)
1101 case "oid", "regclass", "regproc", "regtype":
1102 return id.Null
1103 default:
1104 // TODO
1105 return int64(0)
1106 }
1107 case TypeCategory_StringTypes, TypeCategory_UnknownTypes:
1108 return ""
1109 case TypeCategory_TimespanTypes:
1110 return duration.MakeDuration(0, 0, 0)
1111 default:
1112 // shouldn't happen
1113 return any(nil)
1114 }
1115}
1116
1117// SerializeValue implements the types.ExtendedType interface.
1118func (t *DoltgresType) SerializeValue(ctx context.Context, val any) ([]byte, error) {

Callers 3

ValueTypeMethod · 0.95
NewVariableMethod · 0.80

Calls 2

MakeDurationFunction · 0.92
TypeNameMethod · 0.80

Tested by

no test coverage detected