Skip to content

Commit 9fdb89b

Browse files
committed
fix: propagate json.Unmarshal error in mysql rowDataConverter
1 parent 78fdbeb commit 9fdb89b

1 file changed

Lines changed: 10 additions & 5 deletions

File tree

pkg/datastore/mysql/iterator.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
)
2525

2626
type dataConverter interface {
27-
Data() map[string]interface{}
27+
Data() (map[string]interface{}, error)
2828
}
2929

3030
// Iterator for MySQL result set
@@ -59,7 +59,10 @@ func (it *Iterator) Cursor() (string, error) {
5959
return "", datastore.ErrInvalidCursor
6060
}
6161

62-
lastObjData := it.last.Data()
62+
lastObjData, err := it.last.Data()
63+
if err != nil {
64+
return "", err
65+
}
6366

6467
cursor := make(map[string]interface{}, len(it.orders))
6568
for _, o := range it.orders {
@@ -80,11 +83,13 @@ type rowDataConverter struct {
8083
}
8184

8285
// Data make JSON object with key in CamelCase format.
83-
func (r *rowDataConverter) Data() map[string]interface{} {
86+
func (r *rowDataConverter) Data() (map[string]interface{}, error) {
8487
jsonRaw := convertKeys(json.RawMessage(r.val), convertSnakeToCamel)
8588
obj := make(map[string]interface{})
86-
json.Unmarshal(jsonRaw, &obj)
87-
return obj
89+
if err := json.Unmarshal(jsonRaw, &obj); err != nil {
90+
return nil, err
91+
}
92+
return obj, nil
8893
}
8994

9095
// convertKeys convert all keys of json object with convert function.

0 commit comments

Comments
 (0)