Skip to content

Commit 1bd36e6

Browse files
committed
Switch zstd library to allow build on arm64 and amd64
1 parent 58e3165 commit 1bd36e6

File tree

5 files changed

+50
-11
lines changed

5 files changed

+50
-11
lines changed

.github/workflows/ci.yml

+21-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ jobs:
55
test:
66
strategy:
77
matrix:
8-
go: [ 1.19, 1.18, 1.17, 1.16 ]
8+
go: [ "1.20", "1.19", "1.18" ]
99
os: [ ubuntu-22.04, ubuntu-20.04 ]
1010
name: Tests Go ${{ matrix.go }} # This name is used in main branch protection rules
1111
runs-on: ${{ matrix.os }}
@@ -49,3 +49,23 @@ jobs:
4949
with:
5050
version: latest
5151
args: --timeout=3m
52+
53+
platforms:
54+
strategy:
55+
matrix:
56+
arch: [ "amd64", "arm64" ]
57+
os: [ "linux", "freebsd", "darwin" ]
58+
name: platforms
59+
runs-on: ubuntu-latest
60+
steps:
61+
- name: Prepare for Go
62+
run: |
63+
sudo apt-get install -y make gcc
64+
- name: Install Go
65+
uses: actions/setup-go@v2
66+
with:
67+
go-version: "1.20"
68+
- name: Checkout code
69+
uses: actions/checkout@v1
70+
- name: Build on ${{ matrix.os }}/${{ matrix.arch }}
71+
run: GOARCH=${{ matrix.arch }} GOOS=${{ matrix.os }} go build ./...

go.mod

+16-3
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,34 @@
11
module github.com/go-mysql-org/go-mysql
22

3-
go 1.16
3+
go 1.18
44

55
require (
66
github.com/BurntSushi/toml v0.3.1
7-
github.com/DataDog/zstd v1.5.2
87
github.com/Masterminds/semver v1.5.0
98
github.com/go-sql-driver/mysql v1.6.0
109
github.com/google/uuid v1.3.0
1110
github.com/jmoiron/sqlx v1.3.3
11+
github.com/klauspost/compress v1.16.6
1212
github.com/pingcap/check v0.0.0-20190102082844-67f458068fc8
1313
github.com/pingcap/errors v0.11.5-0.20210425183316-da1aaba5fb63
1414
github.com/pingcap/tidb/parser v0.0.0-20221126021158-6b02a5d8ba7d
15-
github.com/pkg/errors v0.9.1 // indirect
1615
github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24
1716
github.com/siddontang/go v0.0.0-20180604090527-bdc77568d726
1817
github.com/siddontang/go-log v0.0.0-20180807004314-8d05993dda07
1918
github.com/stretchr/testify v1.8.0
19+
)
20+
21+
require (
22+
github.com/davecgh/go-spew v1.1.1 // indirect
23+
github.com/pingcap/log v0.0.0-20210625125904-98ed8e2eb1c7 // indirect
24+
github.com/pkg/errors v0.9.1 // indirect
25+
github.com/pmezard/go-difflib v1.0.0 // indirect
26+
github.com/stretchr/objx v0.4.0 // indirect
27+
go.uber.org/atomic v1.7.0 // indirect
28+
go.uber.org/multierr v1.6.0 // indirect
29+
go.uber.org/zap v1.18.1 // indirect
30+
golang.org/x/text v0.3.6 // indirect
2031
golang.org/x/tools v0.0.0-20201125231158-b5590deeca9b // indirect
32+
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
33+
gopkg.in/yaml.v3 v3.0.1 // indirect
2134
)

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
22
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
3-
github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8=
4-
github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw=
53
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
64
github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
75
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
@@ -19,6 +17,8 @@ github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
1917
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
2018
github.com/jmoiron/sqlx v1.3.3 h1:j82X0bf7oQ27XeqxicSZsTU5suPwKElg3oyxNn43iTk=
2119
github.com/jmoiron/sqlx v1.3.3/go.mod h1:2BljVx/86SuTyjE+aPYlHCTNvZrnJXghYGpNiXLBMCQ=
20+
github.com/klauspost/compress v1.16.6 h1:91SKEy4K37vkp255cJ8QesJhjyRO0hn9i9G0GoUwLsk=
21+
github.com/klauspost/compress v1.16.6/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
2222
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
2323
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
2424
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=

packet/conn.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ import (
1313
"net"
1414
"sync"
1515

16-
"github.com/DataDog/zstd"
1716
. "github.com/go-mysql-org/go-mysql/mysql"
1817
"github.com/go-mysql-org/go-mysql/utils"
18+
"github.com/klauspost/compress/zstd"
1919
"github.com/pingcap/errors"
2020
)
2121

@@ -125,7 +125,7 @@ func (c *Conn) ReadPacketReuseMem(dst []byte) ([]byte, error) {
125125
case MYSQL_COMPRESS_ZLIB:
126126
c.compressedReader, err = zlib.NewReader(c.reader)
127127
case MYSQL_COMPRESS_ZSTD:
128-
c.compressedReader = zstd.NewReader(c.reader)
128+
c.compressedReader, err = zstd.NewReader(c.reader)
129129
}
130130
if err != nil {
131131
return nil, err
@@ -290,7 +290,7 @@ func (c *Conn) writeCompressed(data []byte) (n int, err error) {
290290
case MYSQL_COMPRESS_ZLIB:
291291
w, err = zlib.NewWriterLevel(&payload, zlib.HuffmanOnly)
292292
case MYSQL_COMPRESS_ZSTD:
293-
w = zstd.NewWriter(&payload)
293+
w, err = zstd.NewWriter(&payload)
294294
}
295295
if err != nil {
296296
return 0, err

replication/transaction_payload_event.go

+8-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"fmt"
77
"io"
88

9-
"github.com/DataDog/zstd"
9+
"github.com/klauspost/compress/zstd"
1010

1111
. "github.com/go-mysql-org/go-mysql/mysql"
1212
)
@@ -104,7 +104,13 @@ func (e *TransactionPayloadEvent) decodePayload() error {
104104
e.CompressionType, e.compressionType())
105105
}
106106

107-
payloadUncompressed, err := zstd.Decompress(nil, e.Payload)
107+
var decoder, err = zstd.NewReader(nil, zstd.WithDecoderConcurrency(0))
108+
if err != nil {
109+
return err
110+
}
111+
defer decoder.Close()
112+
113+
payloadUncompressed, err := decoder.DecodeAll(e.Payload, nil)
108114
if err != nil {
109115
return err
110116
}

0 commit comments

Comments
 (0)