Skip to content

Commit da9334f

Browse files
feat(go): enable bulk ingest test in go test (adbc-drivers#68)
## What's Changed Enable bulk ingest test in go test Update the pre-commit pin. adbc-drivers/driverbase-go#125 needs to be merged in first for the enabled bulk ingest tests to pass
1 parent 0745da6 commit da9334f

File tree

5 files changed

+40
-37
lines changed

5 files changed

+40
-37
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ repos:
3434
)$
3535
3636
- repo: https://github.com/golangci/golangci-lint
37-
rev: 72798d34b1eb36745915b0d4eea5c2b3b31bdfe3 # frozen: v2.9.0
37+
rev: 5d1e709b7be35cb2025444e19de266b056b7b7ee # frozen: v2.10.1
3838
hooks:
3939
- id: golangci-lint
4040
name: lint

go/error_inspector.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,12 @@ func (m MySQLErrorInspector) InspectError(err error, defaultStatus adbc.Status)
104104
}
105105
}
106106

107-
return adbc.Error{
107+
adbcErr := adbc.Error{
108108
Code: status,
109109
Msg: err.Error(),
110110
}
111+
if mysqlErr != nil {
112+
adbcErr.SqlState = mysqlErr.SQLState
113+
}
114+
return adbcErr
111115
}

go/go.mod

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ module github.com/adbc-drivers/mysql
1717
go 1.26.0
1818

1919
require (
20-
github.com/adbc-drivers/driverbase-go/driverbase v0.0.0-20260211234429-6c18a16d0c24
21-
github.com/adbc-drivers/driverbase-go/sqlwrapper v0.0.0-20260211234429-6c18a16d0c24
22-
github.com/adbc-drivers/driverbase-go/validation v0.0.0-20260211234429-6c18a16d0c24
20+
github.com/adbc-drivers/driverbase-go/driverbase v0.0.0-20260217234140-addad9015731
21+
github.com/adbc-drivers/driverbase-go/sqlwrapper v0.0.0-20260217234140-addad9015731
22+
github.com/adbc-drivers/driverbase-go/validation v0.0.0-20260217234140-addad9015731
2323
github.com/apache/arrow-adbc/go/adbc v1.10.0
2424
github.com/apache/arrow-go/v18 v18.5.1
2525
github.com/go-ext/variant v1.2.4
@@ -29,7 +29,7 @@ require (
2929

3030
require (
3131
filippo.io/edwards25519 v1.1.0 // indirect
32-
github.com/adbc-drivers/driverbase-go/testutil v0.0.0-20260211234429-6c18a16d0c24 // indirect
32+
github.com/adbc-drivers/driverbase-go/testutil v0.0.0-20260217234140-addad9015731 // indirect
3333
github.com/andybalholm/brotli v1.2.0 // indirect
3434
github.com/apache/thrift v0.22.0 // indirect
3535
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
@@ -41,7 +41,7 @@ require (
4141
github.com/golang/snappy v1.0.0 // indirect
4242
github.com/google/flatbuffers v25.12.19+incompatible // indirect
4343
github.com/google/uuid v1.6.0 // indirect
44-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.8 // indirect
44+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect
4545
github.com/klauspost/asmfmt v1.3.2 // indirect
4646
github.com/klauspost/compress v1.18.4 // indirect
4747
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
@@ -61,18 +61,18 @@ require (
6161
go.opentelemetry.io/otel/sdk v1.40.0 // indirect
6262
go.opentelemetry.io/otel/trace v1.40.0 // indirect
6363
go.opentelemetry.io/proto/otlp v1.9.0 // indirect
64-
golang.org/x/exp v0.0.0-20260211191109-2735e65f0518 // indirect
64+
golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a // indirect
6565
golang.org/x/mod v0.33.0 // indirect
6666
golang.org/x/net v0.50.0 // indirect
6767
golang.org/x/sync v0.19.0 // indirect
6868
golang.org/x/sys v0.41.0 // indirect
69-
golang.org/x/telemetry v0.0.0-20260211191001-d65f0a9c301c // indirect
69+
golang.org/x/telemetry v0.0.0-20260213145524-e0ab670178e1 // indirect
7070
golang.org/x/text v0.34.0 // indirect
7171
golang.org/x/tools v0.42.0 // indirect
7272
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
73-
google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect
74-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect
75-
google.golang.org/grpc v1.78.0 // indirect
73+
google.golang.org/genproto/googleapis/api v0.0.0-20260217215200-42d3e9bedb6d // indirect
74+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d // indirect
75+
google.golang.org/grpc v1.79.1 // indirect
7676
google.golang.org/protobuf v1.36.11 // indirect
7777
gopkg.in/yaml.v3 v3.0.1 // indirect
7878
)

go/go.sum

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
22
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
3-
github.com/adbc-drivers/driverbase-go/driverbase v0.0.0-20260211234429-6c18a16d0c24 h1:XJbhGMOWKJ8anJBNG4Gp5Bj50MNpVrD/Ngbnio3dP38=
4-
github.com/adbc-drivers/driverbase-go/driverbase v0.0.0-20260211234429-6c18a16d0c24/go.mod h1:GbMifodY8nLi/TDF5wNzCjUO0nvDK1w8i5SAGJ8UegQ=
5-
github.com/adbc-drivers/driverbase-go/sqlwrapper v0.0.0-20260211234429-6c18a16d0c24 h1:Cm4JI+5dAw8naZBa6NrodnKxQBtZGKfJmfT2Y1QrXNc=
6-
github.com/adbc-drivers/driverbase-go/sqlwrapper v0.0.0-20260211234429-6c18a16d0c24/go.mod h1:2OwnqMdgLDCZ+xzQK1RhGb03E+MfV5+2y+CMHKgHE3M=
7-
github.com/adbc-drivers/driverbase-go/testutil v0.0.0-20260211234429-6c18a16d0c24 h1:opD+3PEecAP/03Rxp1kRUf5tayPHDyhw8IhyL3dJXDg=
8-
github.com/adbc-drivers/driverbase-go/testutil v0.0.0-20260211234429-6c18a16d0c24/go.mod h1:sKy1hDWTEGcvKi+Z/t1o8aVokwKhNtNtkN0L3+rwai8=
9-
github.com/adbc-drivers/driverbase-go/validation v0.0.0-20260211234429-6c18a16d0c24 h1:MO7PF5qSiI4ZcCpmMkgqseeMsdlC6hG9IwKLMQ5XV8k=
10-
github.com/adbc-drivers/driverbase-go/validation v0.0.0-20260211234429-6c18a16d0c24/go.mod h1:nK2t5BqCbu+L0syBxmbdnS5puxhV82yc4n7Kq1/9NF0=
3+
github.com/adbc-drivers/driverbase-go/driverbase v0.0.0-20260217234140-addad9015731 h1:zte+OgJNsJJ5eGA3S1oD9YxnL27FUQU5QMHtORfJaSY=
4+
github.com/adbc-drivers/driverbase-go/driverbase v0.0.0-20260217234140-addad9015731/go.mod h1:GbMifodY8nLi/TDF5wNzCjUO0nvDK1w8i5SAGJ8UegQ=
5+
github.com/adbc-drivers/driverbase-go/sqlwrapper v0.0.0-20260217234140-addad9015731 h1:v4VDIEcZii6+F6l9lTMidNNc5K9rPVbgrJmgCUmFpNo=
6+
github.com/adbc-drivers/driverbase-go/sqlwrapper v0.0.0-20260217234140-addad9015731/go.mod h1:2OwnqMdgLDCZ+xzQK1RhGb03E+MfV5+2y+CMHKgHE3M=
7+
github.com/adbc-drivers/driverbase-go/testutil v0.0.0-20260217234140-addad9015731 h1:97MRHwGzCsJ9/aCl2kvW4BdedxEQNHvNodu8WIm5VOk=
8+
github.com/adbc-drivers/driverbase-go/testutil v0.0.0-20260217234140-addad9015731/go.mod h1:sKy1hDWTEGcvKi+Z/t1o8aVokwKhNtNtkN0L3+rwai8=
9+
github.com/adbc-drivers/driverbase-go/validation v0.0.0-20260217234140-addad9015731 h1:eXITAs7V7/l+Vbwd2vSPO8Q4YZ2UtA58z9erT6lSQ34=
10+
github.com/adbc-drivers/driverbase-go/validation v0.0.0-20260217234140-addad9015731/go.mod h1:nK2t5BqCbu+L0syBxmbdnS5puxhV82yc4n7Kq1/9NF0=
1111
github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ=
1212
github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY=
1313
github.com/apache/arrow-adbc/go/adbc v1.10.0 h1:WlUswkFtj5QpUa/sPWWgMneQhUTVnpEvSnQoJNSx9t0=
@@ -43,8 +43,8 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
4343
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
4444
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
4545
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
46-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.8 h1:NpbJl/eVbvrGE0MJ6X16X9SAifesl6Fwxg/YmCvubRI=
47-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.8/go.mod h1:mi7YA+gCzVem12exXy46ZespvGtX/lZmD/RLnQhVW7U=
46+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 h1:HWRh5R2+9EifMyIHV7ZV+MIZqgz+PMpZ14Jynv3O2Zs=
47+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0/go.mod h1:JfhWUomR1baixubs02l85lZYYOm7LV6om4ceouMv45c=
4848
github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4=
4949
github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE=
5050
github.com/klauspost/compress v1.18.4 h1:RPhnKRAQ4Fh8zU2FY/6ZFDwTVTxgJ/EMydqSTzE9a2c=
@@ -101,8 +101,8 @@ go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjce
101101
go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4=
102102
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
103103
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
104-
golang.org/x/exp v0.0.0-20260211191109-2735e65f0518 h1:2E1CW7v5QB+Wi3N+MXllOtVR6SFmI8iJM8EdzgxrgrU=
105-
golang.org/x/exp v0.0.0-20260211191109-2735e65f0518/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA=
104+
golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a h1:ovFr6Z0MNmU7nH8VaX5xqw+05ST2uO1exVfZPVqRC5o=
105+
golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA=
106106
golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8=
107107
golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w=
108108
golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60=
@@ -111,8 +111,8 @@ golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
111111
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
112112
golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k=
113113
golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
114-
golang.org/x/telemetry v0.0.0-20260211191001-d65f0a9c301c h1:spBvFjGmaZN8aen7ZOViAZvNNld+2VprdRfZbr7g/tg=
115-
golang.org/x/telemetry v0.0.0-20260211191001-d65f0a9c301c/go.mod h1:NuITXsA9cTiqnXtVk+/wrBT2Ja4X5hsfGOYRJ6kgYjs=
114+
golang.org/x/telemetry v0.0.0-20260213145524-e0ab670178e1 h1:QNaHp8YvpPswfDNxlCmJyeesxbGOgaKf41iT9/QrErY=
115+
golang.org/x/telemetry v0.0.0-20260213145524-e0ab670178e1/go.mod h1:NuITXsA9cTiqnXtVk+/wrBT2Ja4X5hsfGOYRJ6kgYjs=
116116
golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk=
117117
golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA=
118118
golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k=
@@ -121,12 +121,12 @@ golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhS
121121
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
122122
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
123123
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
124-
google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0=
125-
google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY=
126-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac=
127-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
128-
google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc=
129-
google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U=
124+
google.golang.org/genproto/googleapis/api v0.0.0-20260217215200-42d3e9bedb6d h1:EocjzKLywydp5uZ5tJ79iP6Q0UjDnyiHkGRWxuPBP8s=
125+
google.golang.org/genproto/googleapis/api v0.0.0-20260217215200-42d3e9bedb6d/go.mod h1:48U2I+QQUYhsFrg2SY6r+nJzeOtjey7j//WBESw+qyQ=
126+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d h1:t/LOSXPJ9R0B6fnZNyALBRfZBH0Uy0gT+uR+SJ6syqQ=
127+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
128+
google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY=
129+
google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
130130
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
131131
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
132132
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

go/mysql_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -229,12 +229,11 @@ func (q *MySQLQuirks) SampleTableSchemaMetadata(tblName string, dt arrow.DataTyp
229229

230230
func (q *MySQLQuirks) Alloc() memory.Allocator { return q.mem }
231231
func (q *MySQLQuirks) BindParameter(idx int) string { return "?" }
232+
func (q *MySQLQuirks) QuoteTableName(name string) string {
233+
return "`" + strings.ReplaceAll(name, "`", "``") + "`"
234+
}
232235

233-
// SupportsBulkIngest returns false because MySQL doesn't support "NULLS LAST" syntax
234-
// used in the ADBC validation bulk ingest tests.
235-
// TODO: enable this once the validation framework is fixed.
236-
// Filed issue: https://github.com/adbc-drivers/driverbase-go/issues/69
237-
func (q *MySQLQuirks) SupportsBulkIngest(string) bool { return false }
236+
func (q *MySQLQuirks) SupportsBulkIngest(string) bool { return true }
238237
func (q *MySQLQuirks) SupportsConcurrentStatements() bool { return false }
239238
func (q *MySQLQuirks) SupportsCurrentCatalogSchema() bool { return true }
240239
func (q *MySQLQuirks) SupportsExecuteSchema() bool { return true }

0 commit comments

Comments
 (0)