@@ -434,7 +434,7 @@ func (smallIntTypeInfo) Marshal(value interface{}) ([]byte, error) {
434434func (s smallIntTypeInfo ) Unmarshal (data []byte , value interface {}) error {
435435 decodedData , err := decShort (data )
436436 if err != nil {
437- return err
437+ return unmarshalErrorf ( "%s" , err . Error ())
438438 }
439439 if iptr , ok := value .(* interface {}); ok && iptr != nil {
440440 var v int16
@@ -546,7 +546,7 @@ func (tinyIntTypeInfo) Marshal(value interface{}) ([]byte, error) {
546546func (t tinyIntTypeInfo ) Unmarshal (data []byte , value interface {}) error {
547547 decodedData , err := decTiny (data )
548548 if err != nil {
549- return err
549+ return unmarshalErrorf ( "%s" , err . Error ())
550550 }
551551 if iptr , ok := value .(* interface {}); ok && iptr != nil {
552552 var v int8
@@ -646,7 +646,7 @@ func (intTypeInfo) Marshal(value interface{}) ([]byte, error) {
646646func (i intTypeInfo ) Unmarshal (data []byte , value interface {}) error {
647647 decodedData , err := decInt (data )
648648 if err != nil {
649- return err
649+ return unmarshalErrorf ( "%s" , err . Error ())
650650 }
651651 if iptr , ok := value .(* interface {}); ok && iptr != nil {
652652 var v int
@@ -1328,23 +1328,21 @@ func (decimalTypeInfo) Marshal(value interface{}) ([]byte, error) {
13281328
13291329// Unmarshal unmarshals the byte slice into the value.
13301330func (decimalTypeInfo ) Unmarshal (data []byte , value interface {}) error {
1331+ if len (data ) < 4 {
1332+ return unmarshalErrorf ("inf.Dec needs at least 4 bytes, while value has only %d" , len (data ))
1333+ }
1334+
13311335 decodedData , err := decInt (data [0 :4 ])
13321336 if err != nil {
13331337 return err
13341338 }
13351339 switch v := value .(type ) {
13361340 case * inf.Dec :
1337- if len (data ) < 4 {
1338- return unmarshalErrorf ("inf.Dec needs at least 4 bytes, while value has only %d" , len (data ))
1339- }
13401341 scale := decodedData
13411342 unscaled := decBigInt2C (data [4 :], nil )
13421343 * v = * inf .NewDecBig (unscaled , inf .Scale (scale ))
13431344 return nil
13441345 case * interface {}:
1345- if len (data ) < 4 {
1346- return unmarshalErrorf ("inf.Dec needs at least 4 bytes, while value has only %d" , len (data ))
1347- }
13481346 scale := decodedData
13491347 unscaled := decBigInt2C (data [4 :], nil )
13501348 * v = inf .NewDecBig (unscaled , inf .Scale (scale ))
0 commit comments