Skip to content

Commit 7a7f047

Browse files
dobegorsiddontang
authored andcommitted
Fix dump parser to recognize unsigned values, fixes go-mysql-org#389 (go-mysql-org#447)
1 parent fba9c96 commit 7a7f047

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

canal/dump.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,19 @@ func (h *dumpParseHandler) Data(db string, table string, values []string) error
5353
vs[i] = []byte{}
5454
} else if v[0] != '\'' {
5555
if tableInfo.Columns[i].Type == schema.TYPE_NUMBER || tableInfo.Columns[i].Type == schema.TYPE_MEDIUM_INT {
56-
n, err := strconv.ParseInt(v, 10, 64)
56+
var n interface{}
57+
var err error
58+
59+
if tableInfo.Columns[i].IsUnsigned {
60+
n, err = strconv.ParseUint(v, 10, 64)
61+
} else {
62+
n, err = strconv.ParseInt(v, 10, 64)
63+
}
64+
5765
if err != nil {
5866
return fmt.Errorf("parse row %v at %d error %v, int expected", values, i, err)
5967
}
68+
6069
vs[i] = n
6170
} else if tableInfo.Columns[i].Type == schema.TYPE_FLOAT {
6271
f, err := strconv.ParseFloat(v, 64)

0 commit comments

Comments
 (0)