Skip to content

Commit 35f5832

Browse files
authored
fix the unsigned overflow bug (#264)
1 parent dde9528 commit 35f5832

File tree

15 files changed

+310
-55
lines changed

15 files changed

+310
-55
lines changed

Gopkg.lock

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

river/river_test.go

+13-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ func (s *riverTestSuite) SetUpSuite(c *C) {
4444
tenum ENUM("e1", "e2", "e3"),
4545
tset SET("a", "b", "c"),
4646
tbit BIT(1) default 1,
47-
tdatetime DATETIME DEFAULT NULL,
47+
tdatetime DATETIME DEFAULT NULL,
48+
ip INT UNSIGNED DEFAULT 0,
4849
PRIMARY KEY(id)) ENGINE=INNODB;
4950
`
5051

@@ -224,6 +225,9 @@ func (s *riverTestSuite) testPrepareData(c *C) {
224225

225226
datetime := time.Now().Format(mysql.TimeFormat)
226227
s.testExecute(c, "INSERT INTO test_river (id, title, content, tenum, tset, tdatetime, mydate) VALUES (?, ?, ?, ?, ?, ?, ?)", 16, "test datetime", "hello go 16", "e1", "a,b", datetime, 1458131094)
228+
229+
// test ip
230+
s.testExecute(c, "INSERT test_river (id, ip) VALUES (?, ?)", 17, 0)
227231
}
228232

229233
func (s *riverTestSuite) testElasticGet(c *C, id string) *elastic.Response {
@@ -320,6 +324,9 @@ func (s *riverTestSuite) TestRiver(c *C) {
320324
s.testExecute(c, fmt.Sprintf("UPDATE %s SET title = ? WHERE id = ?", table), "hello", 5+i)
321325
}
322326

327+
// test ip
328+
s.testExecute(c, "UPDATE test_river set ip = ? WHERE id = ?", 3748168280, 17)
329+
323330
testWaitSyncDone(c, s.r)
324331

325332
r = s.testElasticGet(c, "1")
@@ -352,6 +359,11 @@ func (s *riverTestSuite) TestRiver(c *C) {
352359
c.Assert(r.Source["es_title"], Equals, "hello")
353360
}
354361

362+
// test ip
363+
r = s.testElasticGet(c, "17")
364+
c.Assert(r.Found, IsTrue)
365+
c.Assert(r.Source["ip"], Equals, float64(3748168280))
366+
355367
// alter table
356368
s.testExecute(c, "ALTER TABLE test_river ADD COLUMN new INT(10)")
357369
s.testExecute(c, "INSERT INTO test_river (id, title, content, tenum, tset, new) VALUES (?, ?, ?, ?, ?, ?)", 1000, "abc", "hello", "e1", "a,b,c", 1)

river/sync.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -418,14 +418,14 @@ func (r *River) getDocID(rule *Rule, row []interface{}) (string, error) {
418418
err error
419419
)
420420
if rule.ID == nil {
421-
ids, err = canal.GetPKValues(rule.TableInfo, row)
421+
ids, err = rule.TableInfo.GetPKValues(row)
422422
if err != nil {
423423
return "", err
424424
}
425425
} else {
426426
ids = make([]interface{}, 0, len(rule.ID))
427427
for _, column := range rule.ID {
428-
value, err := canal.GetColumnValue(rule.TableInfo, column, row)
428+
value, err := rule.TableInfo.GetColumnValue(column, row)
429429
if err != nil {
430430
return "", err
431431
}

vendor/github.com/BurntSushi/toml/COPYING

+14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/COPYING

+14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/COPYING

+14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/BurntSushi/toml/cmd/tomlv/COPYING

+14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/siddontang/go-mysql/canal/canal.go

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/siddontang/go-mysql/canal/config.go

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/siddontang/go-mysql/canal/dump.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/siddontang/go-mysql/canal/rows.go

+32-26
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/siddontang/go-mysql/canal/sync.go

+6-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)