aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm/sqlvm/schema
diff options
context:
space:
mode:
authorTing-Wei Lan <tingwei.lan@cobinhood.com>2019-04-02 16:50:01 +0800
committerJhih-Ming Huang <jm@dexon.org>2019-05-08 13:20:53 +0800
commit6008337f6e562af1e9cf4c6ab70fe2c09d993c62 (patch)
tree9c066ce7df5f49301844c98d06c919e979eff549 /core/vm/sqlvm/schema
parent682e15d8212cc376509f8f2ef854adf48efb64ef (diff)
downloaddexon-6008337f6e562af1e9cf4c6ab70fe2c09d993c62.tar
dexon-6008337f6e562af1e9cf4c6ab70fe2c09d993c62.tar.gz
dexon-6008337f6e562af1e9cf4c6ab70fe2c09d993c62.tar.bz2
dexon-6008337f6e562af1e9cf4c6ab70fe2c09d993c62.tar.lz
dexon-6008337f6e562af1e9cf4c6ab70fe2c09d993c62.tar.xz
dexon-6008337f6e562af1e9cf4c6ab70fe2c09d993c62.tar.zst
dexon-6008337f6e562af1e9cf4c6ab70fe2c09d993c62.zip
core: vm: sqlvm: return a bool from DecimalEncode and DecimalDecode
Instead of returning a fixed error code, we can return a boolean here because the only possibility of an error is invalid arguments. Callers of these functions must know where invalid arguments come from, and correctly handle it by converting it to an error struct or panicking.
Diffstat (limited to 'core/vm/sqlvm/schema')
-rw-r--r--core/vm/sqlvm/schema/schema.go24
1 files changed, 13 insertions, 11 deletions
diff --git a/core/vm/sqlvm/schema/schema.go b/core/vm/sqlvm/schema/schema.go
index 1ebb96fa3..1e87d88cf 100644
--- a/core/vm/sqlvm/schema/schema.go
+++ b/core/vm/sqlvm/schema/schema.go
@@ -14,8 +14,10 @@ import (
// Error defines for encode and decode.
var (
- ErrEncodeUnexpectedType = errors.New("encode unexpected type")
- ErrDecodeUnexpectedType = errors.New("decode unexpected type")
+ ErrEncodeUnexpectedDataType = errors.New("encode unexpected data type")
+ ErrEncodeUnexpectedDefaultType = errors.New("encode unexpected default type")
+ ErrDecodeUnexpectedDataType = errors.New("decode unexpected data type")
+ ErrDecodeUnexpectedDefaultType = errors.New("decode unexpected default type")
)
// ColumnAttr defines bit flags for describing column attribute.
@@ -208,13 +210,13 @@ func (c Column) EncodeRLP(w io.Writer) error {
case []byte:
c.Rest = d
case decimal.Decimal:
- var err error
- c.Rest, err = ast.DecimalEncode(c.Type, d)
- if err != nil {
- return err
+ var ok bool
+ c.Rest, ok = ast.DecimalEncode(c.Type, d)
+ if !ok {
+ return ErrEncodeUnexpectedDataType
}
default:
- return ErrEncodeUnexpectedType
+ return ErrEncodeUnexpectedDefaultType
}
} else {
c.Rest = nil
@@ -249,14 +251,14 @@ func (c *Column) DecodeRLP(s *rlp.Stream) error {
case ast.DataTypeMajorFixedBytes, ast.DataTypeMajorDynamicBytes:
c.Default = rest
default:
- d, err := ast.DecimalDecode(c.Type, rest)
- if err != nil {
- return err
+ d, ok := ast.DecimalDecode(c.Type, rest)
+ if !ok {
+ return ErrDecodeUnexpectedDataType
}
c.Default = d
}
default:
- return ErrDecodeUnexpectedType
+ return ErrDecodeUnexpectedDefaultType
}
return nil