From 0f9886d0003f3d4798a612d5f77e23f75581ea8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= Date: Thu, 20 Nov 2025 19:46:13 +0100 Subject: [PATCH 1/2] DM: Improve checker to support newer MariaDB versions --- dm/checker/checker.go | 4 +++- dm/pkg/checker/conn_checker.go | 2 +- dm/pkg/checker/privilege.go | 37 +++++++++++++++++++++----------- dm/pkg/checker/privilege_test.go | 8 +++---- dm/pkg/conn/basedb.go | 10 ++++----- dm/pkg/conn/basedb_test.go | 4 ++-- go.mod | 17 +++++++++------ go.sum | 34 ++++++++++++++--------------- 8 files changed, 67 insertions(+), 49 deletions(-) diff --git a/dm/checker/checker.go b/dm/checker/checker.go index b659fda538..445e4929d4 100644 --- a/dm/checker/checker.go +++ b/dm/checker/checker.go @@ -304,6 +304,7 @@ func (c *Checker) Init(ctx context.Context) (err error) { c.checkList = append(c.checkList, checker.NewTargetPrivilegeChecker( c.instances[0].targetDB.DB, c.instances[0].targetDBInfo, + c.instances[0].targetDB.Version, )) } // sourceID -> DB @@ -334,6 +335,7 @@ func (c *Checker) Init(ctx context.Context) (err error) { c.checkList = append(c.checkList, checker.NewSourceDumpPrivilegeChecker( instance.sourceDB.DB, instance.sourceDBinfo, + instance.sourceDB.Version, info.sourceID2SourceTables[sourceID], exportCfg.Consistency, c.dumpWholeInstance, @@ -364,7 +366,7 @@ func (c *Checker) Init(ctx context.Context) (err error) { c.checkList = append(c.checkList, checker.NewMySQLBinlogRowImageChecker(instance.sourceDB.DB, instance.sourceDBinfo)) } if _, ok := c.checkingItems[config.ReplicationPrivilegeChecking]; ok { - c.checkList = append(c.checkList, checker.NewSourceReplicationPrivilegeChecker(instance.sourceDB.DB, instance.sourceDBinfo)) + c.checkList = append(c.checkList, checker.NewSourceReplicationPrivilegeChecker(instance.sourceDB.DB, instance.sourceDBinfo, instance.sourceDB.Version)) } if _, ok := c.checkingItems[config.OnlineDDLChecking]; c.onlineDDL != nil && ok { c.checkList = append(c.checkList, checker.NewOnlineDDLChecker(instance.sourceDB.DB, info.sourceID2InterestedDB[i], c.onlineDDL, instance.baList)) diff --git a/dm/pkg/checker/conn_checker.go b/dm/pkg/checker/conn_checker.go index 21b85a6098..e6fc4567ac 100644 --- a/dm/pkg/checker/conn_checker.go +++ b/dm/pkg/checker/conn_checker.go @@ -94,7 +94,7 @@ func (c *connNumberChecker) check(ctx context.Context, checkerName string, neede markCheckError(result, err) return result } - err2 := verifyPrivilegesWithResult(result, grants, neededPriv) + err2 := verifyPrivilegesWithResult(result, grants, neededPriv, c.toCheckDB.Version) if err2 != nil { // no enough privilege to check the user's connection number result.State = StateWarning diff --git a/dm/pkg/checker/privilege.go b/dm/pkg/checker/privilege.go index 17731913fa..3ed20f68c3 100644 --- a/dm/pkg/checker/privilege.go +++ b/dm/pkg/checker/privilege.go @@ -54,12 +54,14 @@ type SourceDumpPrivilegeChecker struct { checkTables []filter.Table consistency string dumpWholeInstance bool + version string } // NewSourceDumpPrivilegeChecker returns a RealChecker. func NewSourceDumpPrivilegeChecker( db *sql.DB, dbinfo *dbutil.DBConfig, + version string, checkTables []filter.Table, consistency string, dumpWholeInstance bool, @@ -70,6 +72,7 @@ func NewSourceDumpPrivilegeChecker( checkTables: checkTables, consistency: consistency, dumpWholeInstance: dumpWholeInstance, + version: version, } } @@ -107,7 +110,7 @@ func (pc *SourceDumpPrivilegeChecker) Check(ctx context.Context) *Result { dumpRequiredPrivs[mysql.LockTablesPriv] = priv{needGlobal: true} } - err2 := verifyPrivilegesWithResult(result, grants, dumpRequiredPrivs) + err2 := verifyPrivilegesWithResult(result, grants, dumpRequiredPrivs, pc.version) if err2 != nil { result.Errors = append(result.Errors, err2) result.Instruction = "Please grant the required privileges to the account." @@ -126,13 +129,14 @@ func (pc *SourceDumpPrivilegeChecker) Name() string { // SourceReplicatePrivilegeChecker checks replication privileges of source DB. type SourceReplicatePrivilegeChecker struct { - db *sql.DB - dbinfo *dbutil.DBConfig + db *sql.DB + dbinfo *dbutil.DBConfig + version string } // NewSourceReplicationPrivilegeChecker returns a RealChecker. -func NewSourceReplicationPrivilegeChecker(db *sql.DB, dbinfo *dbutil.DBConfig) RealChecker { - return &SourceReplicatePrivilegeChecker{db: db, dbinfo: dbinfo} +func NewSourceReplicationPrivilegeChecker(db *sql.DB, dbinfo *dbutil.DBConfig, version string) RealChecker { + return &SourceReplicatePrivilegeChecker{db: db, dbinfo: dbinfo, version: version} } // Check implements the RealChecker interface. @@ -154,7 +158,7 @@ func (pc *SourceReplicatePrivilegeChecker) Check(ctx context.Context) *Result { mysql.ReplicationSlavePriv: {needGlobal: true}, mysql.ReplicationClientPriv: {needGlobal: true}, } - err2 := verifyPrivilegesWithResult(result, grants, replRequiredPrivs) + err2 := verifyPrivilegesWithResult(result, grants, replRequiredPrivs, pc.version) if err2 != nil { result.Errors = append(result.Errors, err2) result.State = StateFailure @@ -169,12 +173,13 @@ func (pc *SourceReplicatePrivilegeChecker) Name() string { } type TargetPrivilegeChecker struct { - db *sql.DB - dbinfo *dbutil.DBConfig + db *sql.DB + dbinfo *dbutil.DBConfig + version string } -func NewTargetPrivilegeChecker(db *sql.DB, dbinfo *dbutil.DBConfig) RealChecker { - return &TargetPrivilegeChecker{db: db, dbinfo: dbinfo} +func NewTargetPrivilegeChecker(db *sql.DB, dbinfo *dbutil.DBConfig, version string) RealChecker { + return &TargetPrivilegeChecker{db: db, dbinfo: dbinfo, version: version} } func (t *TargetPrivilegeChecker) Name() string { @@ -203,7 +208,7 @@ func (t *TargetPrivilegeChecker) Check(ctx context.Context) *Result { mysql.DropPriv: {needGlobal: true}, mysql.IndexPriv: {needGlobal: true}, } - err2 := verifyPrivilegesWithResult(result, grants, replRequiredPrivs) + err2 := verifyPrivilegesWithResult(result, grants, replRequiredPrivs, t.version) if err2 != nil { result.Errors = append(result.Errors, err2) // because we cannot be very precisely sure about which table @@ -217,8 +222,9 @@ func verifyPrivilegesWithResult( result *Result, grants []string, requiredPriv map[mysql.PrivilegeType]priv, + version string, ) *Error { - lackedPriv, err := VerifyPrivileges(grants, requiredPriv) + lackedPriv, err := VerifyPrivileges(grants, requiredPriv, version) if err != nil { // nolint return NewError("%s", err.Error()) @@ -284,12 +290,19 @@ func LackedPrivilegesAsStr(lackPriv map[mysql.PrivilegeType]priv) string { func VerifyPrivileges( grants []string, lackPrivs map[mysql.PrivilegeType]priv, + version string, ) (map[mysql.PrivilegeType]priv, error) { if len(grants) == 0 { return nil, errors.New("there is no such grant defined for current user on host '%%'") } p := parser.New() + + // Support for BINLOG MONITOR and other MariaDB things + if strings.Contains(version, "MariaDB") { + p.SetMariaDB(true) + } + for _, grant := range grants { if len(lackPrivs) == 0 { break diff --git a/dm/pkg/checker/privilege_test.go b/dm/pkg/checker/privilege_test.go index f984bd6a57..710059c09b 100644 --- a/dm/pkg/checker/privilege_test.go +++ b/dm/pkg/checker/privilege_test.go @@ -213,7 +213,7 @@ func TestVerifyDumpPrivileges(t *testing.T) { if cs.dumpWholeInstance { dumpRequiredPrivs[mysql.SelectPriv] = priv{needGlobal: true} } - err := verifyPrivilegesWithResult(result, cs.grants, dumpRequiredPrivs) + err := verifyPrivilegesWithResult(result, cs.grants, dumpRequiredPrivs, "8.0.11") if cs.dumpState == StateSuccess { require.Nil(t, err, "grants: %v", cs.grants) } else { @@ -325,7 +325,7 @@ func TestVerifyReplicationPrivileges(t *testing.T) { mysql.ReplicationSlavePriv: {needGlobal: true}, mysql.ReplicationClientPriv: {needGlobal: true}, } - err := verifyPrivilegesWithResult(result, cs.grants, replRequiredPrivs) + err := verifyPrivilegesWithResult(result, cs.grants, replRequiredPrivs, "8.0.11") if cs.replicationState == StateSuccess { require.Nil(t, err, "grants: %v", cs.grants) } else { @@ -405,7 +405,7 @@ func TestVerifyPrivilegesWildcard(t *testing.T) { dbs: genTableLevelPrivs(cs.checkTables), }, } - err := verifyPrivilegesWithResult(result, cs.grants, requiredPrivs) + err := verifyPrivilegesWithResult(result, cs.grants, requiredPrivs, "8.0.11") if cs.replicationState == StateSuccess { require.Nil(t, err, "grants: %v", cs.grants) } else { @@ -469,7 +469,7 @@ func TestVerifyTargetPrivilege(t *testing.T) { mysql.AlterPriv: {needGlobal: true}, mysql.DropPriv: {needGlobal: true}, } - err := verifyPrivilegesWithResult(result, cs.grants, replRequiredPrivs) + err := verifyPrivilegesWithResult(result, cs.grants, replRequiredPrivs, "8.0.11") if cs.checkState == StateSuccess { require.Nil(t, err, "grants: %v", cs.grants) } else { diff --git a/dm/pkg/conn/basedb.go b/dm/pkg/conn/basedb.go index 372b84dfdd..0707675ccf 100644 --- a/dm/pkg/conn/basedb.go +++ b/dm/pkg/conn/basedb.go @@ -201,7 +201,7 @@ type BaseDB struct { doNotClose bool // SELECT VERSION() - version string + Version string } // NewBaseDB returns *BaseDB object for test. @@ -213,7 +213,7 @@ func NewBaseDB(db *sql.DB, scope terror.ErrScope, version string, doFuncInClose Retry: &retry.FiniteRetryStrategy{}, Scope: scope, doFuncInClose: doFuncInClose, - version: version, + Version: version, } } @@ -238,7 +238,7 @@ func NewBaseDBForTestWithVersion(db *sql.DB, version string, doFuncInClose ...fu Retry: &retry.FiniteRetryStrategy{}, Scope: terror.ScopeNotSet, doFuncInClose: doFuncInClose, - version: version, + Version: version, } } @@ -398,7 +398,7 @@ func (d *BaseDB) needsModernTerminology() bool { // - https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/show/show-replica-hosts // // Old syntax is still accepted. - if strings.Contains(d.version, "MariaDB") { + if strings.Contains(d.Version, "MariaDB") { return false } @@ -406,7 +406,7 @@ func (d *BaseDB) needsModernTerminology() bool { // MySQL 8.4 removed `SHOW MASTER STATUS`. minVer := semver.New("8.4.0") - v, err := semver.NewVersion(d.version) + v, err := semver.NewVersion(d.Version) if err != nil { return false } diff --git a/dm/pkg/conn/basedb_test.go b/dm/pkg/conn/basedb_test.go index 9036456b25..581b776a01 100644 --- a/dm/pkg/conn/basedb_test.go +++ b/dm/pkg/conn/basedb_test.go @@ -121,7 +121,7 @@ func TestNeedsModernTerminology(t *testing.T) { } for _, tc := range cases { - b.version = tc.version - require.Equal(t, tc.modern, b.needsModernTerminology(), b.version) + b.Version = tc.version + require.Equal(t, tc.modern, b.needsModernTerminology(), b.Version) } } diff --git a/go.mod b/go.mod index 093c972d2d..3e0fa2245d 100644 --- a/go.mod +++ b/go.mod @@ -70,13 +70,13 @@ require ( github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 github.com/pierrec/lz4/v4 v4.1.22 github.com/pingcap/check v0.0.0-20211026125417-57bd13f7b5f0 - github.com/pingcap/errors v0.11.5-0.20250523034308-74f78ae071ee + github.com/pingcap/errors v0.11.5-0.20260310054046-9c8b3586e4b2 github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86 - github.com/pingcap/kvproto v0.0.0-20260120063856-d09230288811 + github.com/pingcap/kvproto v0.0.0-20260320060847-534bbfabf736 github.com/pingcap/log v1.1.1-0.20250917021125-19901e015dc9 - github.com/pingcap/tidb v1.1.0-beta.0.20260306054132-ef17075bb9eb + github.com/pingcap/tidb v1.1.0-beta.0.20260324131525-5e5f358b8aea github.com/pingcap/tidb-dashboard v0.0.0-20240326110213-9768844ff5d7 - github.com/pingcap/tidb/pkg/parser v0.0.0-20260306054132-ef17075bb9eb + github.com/pingcap/tidb/pkg/parser v0.0.0-20260324131525-5e5f358b8aea github.com/prometheus/client_golang v1.23.0 github.com/prometheus/client_model v0.6.2 github.com/r3labs/diff v1.1.0 @@ -91,9 +91,9 @@ require ( github.com/stretchr/testify v1.11.1 github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954 github.com/thanhpk/randstr v1.0.6 - github.com/tikv/client-go/v2 v2.0.8-0.20260225065730-dfa54d86781e + github.com/tikv/client-go/v2 v2.0.8-0.20260319090224-0569333efa49 github.com/tikv/pd v1.1.0-beta.0.20240407022249-7179657d129b - github.com/tikv/pd/client v0.0.0-20260228084044-4f5039d43753 + github.com/tikv/pd/client v0.0.0-20260323032024-d7b638033a14 github.com/tinylib/msgp v1.1.6 github.com/uber-go/atomic v1.4.0 github.com/vmihailenco/msgpack/v5 v5.3.5 @@ -373,7 +373,7 @@ require ( github.com/pingcap/fn v1.0.0 // indirect github.com/pingcap/goleveldb v0.0.0-20191226122134-f82aafb29989 // indirect github.com/pingcap/sysutil v1.0.1-0.20240311050922-ae81ee01f3a5 - github.com/pingcap/tipb v0.0.0-20251230094608-1374320b4bd8 // indirect + github.com/pingcap/tipb v0.0.0-20260210113932-1447c9d7e9fe // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect @@ -462,3 +462,6 @@ replace golang.org/x/text => golang.org/x/text v0.28.0 // tls10server=1 godebug tlsrsakex=1 + +// copy from TiDB +replace github.com/apache/arrow-go/v18 => github.com/joechenrh/arrow-go/v18 v18.0.0-20250911101656-62c34c9a3b82 diff --git a/go.sum b/go.sum index dea1b27b11..087c5751fc 100644 --- a/go.sum +++ b/go.sum @@ -145,8 +145,6 @@ github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129/go.mod h1:rFgp github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ= github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/apache/arrow-go/v18 v18.5.0 h1:rmhKjVA+MKVnQIMi/qnM0OxeY4tmHlN3/Pvu+Itmd6s= -github.com/apache/arrow-go/v18 v18.5.0/go.mod h1:F1/wPb3bUy6ZdP4kEPWC7GUZm+yDmxXFERK6uDSkhr8= github.com/apache/pulsar-client-go v0.13.0 h1:XB8jbcVgBZlRkswtTFj6Xy3Hv0mtpvT8xn/ovT1c0I0= github.com/apache/pulsar-client-go v0.13.0/go.mod h1:btNzPWaKtG9geL6naJNYwXnqJJ/codYM41awyZxZLQ4= github.com/apache/thrift v0.22.0 h1:r7mTJdj51TMDe6RtcmNdQxgn9XcyfGDOzegMDRg47uc= @@ -651,6 +649,8 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmoiron/sqlx v1.3.3 h1:j82X0bf7oQ27XeqxicSZsTU5suPwKElg3oyxNn43iTk= github.com/jmoiron/sqlx v1.3.3/go.mod h1:2BljVx/86SuTyjE+aPYlHCTNvZrnJXghYGpNiXLBMCQ= +github.com/joechenrh/arrow-go/v18 v18.0.0-20250911101656-62c34c9a3b82 h1:FgHYKbQYF2aD5vlSMCHiS9Xn5PPmFLSaCc+5OYInMRc= +github.com/joechenrh/arrow-go/v18 v18.0.0-20250911101656-62c34c9a3b82/go.mod h1:xBWjSZfpqLkg1mHuVUSF8lMTUfE7SdEUl/VVVd79MIw= github.com/johannesboyne/gofakes3 v0.0.0-20230506070712-04da935ef877 h1:O7syWuYGzre3s73s+NkgB8e0ZvsIVhT/zxNU7V1gHK8= github.com/johannesboyne/gofakes3 v0.0.0-20230506070712-04da935ef877/go.mod h1:AxgWC4DDX54O2WDoQO1Ceabtn6IbktjU/7bigor+66g= github.com/joho/sqltocsv v0.0.0-20210428211105-a6d6801d59df h1:Zrb0IbuLOGHL7nrO2WrcuNWgDTlzFv3zY69QMx4ggQE= @@ -870,8 +870,8 @@ github.com/pingcap/check v0.0.0-20211026125417-57bd13f7b5f0/go.mod h1:PYMCGwN0JH github.com/pingcap/errors v0.11.0/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pingcap/errors v0.11.5-0.20190809092503-95897b64e011/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= -github.com/pingcap/errors v0.11.5-0.20250523034308-74f78ae071ee h1:/IDPbpzkzA97t1/Z1+C3KlxbevjMeaI6BQYxvivu4u8= -github.com/pingcap/errors v0.11.5-0.20250523034308-74f78ae071ee/go.mod h1:X2r9ueLEUZgtx2cIogM0v4Zj5uvvzhuuiu7Pn8HzMPg= +github.com/pingcap/errors v0.11.5-0.20260310054046-9c8b3586e4b2 h1:cLgCk5mwDG9lDH+dPK8TmEliTjyGJwwKN0qevWAl8IY= +github.com/pingcap/errors v0.11.5-0.20260310054046-9c8b3586e4b2/go.mod h1:ktAJCA9lxrHHjVyVl2pKJFvzBnq2eZbb+CUOjBRPlXo= github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86 h1:tdMsjOqUR7YXHoBitzdebTvOjs/swniBTOLy5XiMtuE= github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86/go.mod h1:exzhVYca3WRtd6gclGNErRWb1qEgff3LYta0LvRmON4= github.com/pingcap/fn v1.0.0 h1:CyA6AxcOZkQh52wIqYlAmaVmF6EvrcqFywP463pjA8g= @@ -879,8 +879,8 @@ github.com/pingcap/fn v1.0.0/go.mod h1:u9WZ1ZiOD1RpNhcI42RucFh/lBuzTu6rw88a+oF2Z github.com/pingcap/goleveldb v0.0.0-20191226122134-f82aafb29989 h1:surzm05a8C9dN8dIUmo4Be2+pMRb6f55i+UIYrluu2E= github.com/pingcap/goleveldb v0.0.0-20191226122134-f82aafb29989/go.mod h1:O17XtbryoCJhkKGbT62+L2OlrniwqiGLSqrmdHCMzZw= github.com/pingcap/kvproto v0.0.0-20191211054548-3c6b38ea5107/go.mod h1:WWLmULLO7l8IOcQG+t+ItJ3fEcrL5FxF0Wu+HrMy26w= -github.com/pingcap/kvproto v0.0.0-20260120063856-d09230288811 h1:kRQmRan/ddUlz3uCED/zQHGTAQaTvZ0Jtpk8MKFzm8E= -github.com/pingcap/kvproto v0.0.0-20260120063856-d09230288811/go.mod h1:rXxWk2UnwfUhLXha1jxRWPADw9eMZGWEWCg92Tgmb/8= +github.com/pingcap/kvproto v0.0.0-20260320060847-534bbfabf736 h1:GKdGsEfcE4ImbSN24AIt51t+3sUyqNTLoeUaJiZld8s= +github.com/pingcap/kvproto v0.0.0-20260320060847-534bbfabf736/go.mod h1:rXxWk2UnwfUhLXha1jxRWPADw9eMZGWEWCg92Tgmb/8= github.com/pingcap/log v0.0.0-20191012051959-b742a5d432e9/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8= github.com/pingcap/log v0.0.0-20210625125904-98ed8e2eb1c7/go.mod h1:8AanEdAHATuRurdGxZXBz0At+9avep+ub7U1AGYLIMM= github.com/pingcap/log v1.1.0/go.mod h1:DWQW5jICDR7UJh4HtxXSM20Churx4CQL0fwL/SoOSA4= @@ -892,14 +892,14 @@ github.com/pingcap/sarama v1.41.2-pingcap-20250415 h1:jc/31lgAuSWLh8zr3y5bL0atpB github.com/pingcap/sarama v1.41.2-pingcap-20250415/go.mod h1:Kwi9CT6CuDYad3KS7HqjsbmD2DWkIKI7qI6a8PKlGb4= github.com/pingcap/sysutil v1.0.1-0.20240311050922-ae81ee01f3a5 h1:T4pXRhBflzDeAhmOQHNPRRogMYxP13V7BkYw3ZsoSfE= github.com/pingcap/sysutil v1.0.1-0.20240311050922-ae81ee01f3a5/go.mod h1:rlimy0GcTvjiJqvD5mXTRr8O2eNZPBrcUgiWVYp9530= -github.com/pingcap/tidb v1.1.0-beta.0.20260306054132-ef17075bb9eb h1:DOueDIDo3gqBVlwJKrJ//gqAwP+3hGpXxLGFRlRdJeI= -github.com/pingcap/tidb v1.1.0-beta.0.20260306054132-ef17075bb9eb/go.mod h1:yUgutduEAwjWgdlzqPfJXaEwO/q5OPFgQLg6VhX7FIc= +github.com/pingcap/tidb v1.1.0-beta.0.20260324131525-5e5f358b8aea h1:TUxna1L6qjteDFvJVK/ETZHQDcbG88GXMbUQolyhE7M= +github.com/pingcap/tidb v1.1.0-beta.0.20260324131525-5e5f358b8aea/go.mod h1:lMVbvTSs9vvwxS65jJc01OjuX+lDCsJRjTKoNX0QWaQ= github.com/pingcap/tidb-dashboard v0.0.0-20240326110213-9768844ff5d7 h1:eFu98FbfJB7PKWOtkaV6YNXXJWqDhczQX56j/iucgU4= github.com/pingcap/tidb-dashboard v0.0.0-20240326110213-9768844ff5d7/go.mod h1:ucZBRz52icb23T/5Z4CsuUHmarYiin7p2MeiVBe+o8c= -github.com/pingcap/tidb/pkg/parser v0.0.0-20260306054132-ef17075bb9eb h1:jI0KsWZFQgy3nnFHHJfolRTS0bVPqt3L9CYZhQYO3wM= -github.com/pingcap/tidb/pkg/parser v0.0.0-20260306054132-ef17075bb9eb/go.mod h1:oHE+ub2QaDERd+UNHe4z2BhFV2jZrm7VNOe6atR9AF4= -github.com/pingcap/tipb v0.0.0-20251230094608-1374320b4bd8 h1:KT/h7b+7lP/P+5OuczNNV+/wsHj9d0L7Eu4ktB5VRIg= -github.com/pingcap/tipb v0.0.0-20251230094608-1374320b4bd8/go.mod h1:RM8iRcMalzOthG2XJxnNBniM4xFGb/lDwHUwqkaVzt4= +github.com/pingcap/tidb/pkg/parser v0.0.0-20260324131525-5e5f358b8aea h1:8cjQmixLmK66Di+1EzhJ8Tq//NhfTumgejni+InEgX0= +github.com/pingcap/tidb/pkg/parser v0.0.0-20260324131525-5e5f358b8aea/go.mod h1:zDLDsfNBU5+L6T4J9/OgWAHc/WZvMUjbpgHqQ/t3yKo= +github.com/pingcap/tipb v0.0.0-20260210113932-1447c9d7e9fe h1:Zmz9mON+2NoKDVjkJbk6NZbFoTzVzk8MPTbRnu+MiVM= +github.com/pingcap/tipb v0.0.0-20260210113932-1447c9d7e9fe/go.mod h1:RM8iRcMalzOthG2XJxnNBniM4xFGb/lDwHUwqkaVzt4= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -1047,6 +1047,7 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954 h1:xQdMZ1WLrgkkvOZ/LDQxjVxMLdby7osSh4ZEVa5sIjs= @@ -1081,12 +1082,12 @@ github.com/tidwall/rtred v0.1.2 h1:exmoQtOLvDoO8ud++6LwVsAMTu0KPzLTUrMln8u1yu8= github.com/tidwall/rtred v0.1.2/go.mod h1:hd69WNXQ5RP9vHd7dqekAz+RIdtfBogmglkZSRxCHFQ= github.com/tidwall/tinyqueue v0.1.1 h1:SpNEvEggbpyN5DIReaJ2/1ndroY8iyEGxPYxoSaymYE= github.com/tidwall/tinyqueue v0.1.1/go.mod h1:O/QNHwrnjqr6IHItYrzoHAKYhBkLI67Q096fQP5zMYw= -github.com/tikv/client-go/v2 v2.0.8-0.20260225065730-dfa54d86781e h1:Ts6PeD2egs47PF7QqgbHZ3Wl7arO2peyz95T7mSQii8= -github.com/tikv/client-go/v2 v2.0.8-0.20260225065730-dfa54d86781e/go.mod h1:4jHqtFu0MeXVYFbka4yTZRxV/nR1Jw46hkyD5qhxi7s= +github.com/tikv/client-go/v2 v2.0.8-0.20260319090224-0569333efa49 h1:PzPBJW3y7WAX1fJ92U6qvjWGvoqpMpESsBbOsAPRzPM= +github.com/tikv/client-go/v2 v2.0.8-0.20260319090224-0569333efa49/go.mod h1:2itxkVYz1s+dKsfJZqKcFD2MGUoDxvyy/Yqjd7vkdjg= github.com/tikv/pd v1.1.0-beta.0.20240407022249-7179657d129b h1:t2XoZp4UHrkPpYPsxbRTRVExJnriWlh+ZsDIfpYyd98= github.com/tikv/pd v1.1.0-beta.0.20240407022249-7179657d129b/go.mod h1:7HJMdb0O5umNpZIFt8e/wKAcEmH99n2HsYgXX+vZj3k= -github.com/tikv/pd/client v0.0.0-20260228084044-4f5039d43753 h1:WSiznlCpoBCnJMZt5nHDC0Ig8PvQ9O+rgVSO7gwU44o= -github.com/tikv/pd/client v0.0.0-20260228084044-4f5039d43753/go.mod h1:tloQKNFqF/T5JfLx4bloR8MKPZyp7y6cF3guAlls88M= +github.com/tikv/pd/client v0.0.0-20260323032024-d7b638033a14 h1:TVSx20m6DZMSiI37Dduu9RZb8yUvT1sgW8kCLAe+T5U= +github.com/tikv/pd/client v0.0.0-20260323032024-d7b638033a14/go.mod h1:4kxXuAQAREpH+lVbydVwGNNDmcwdj0RG4Ofwky08W/k= github.com/tinylib/msgp v1.1.6 h1:i+SbKraHhnrf9M5MYmvQhFnbLhAXSDWF8WWsuyRdocw= github.com/tinylib/msgp v1.1.6/go.mod h1:75BAfg2hauQhs3qedfdDZmWAPcFMAvJE5b9rGOMufyw= github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w= @@ -1224,7 +1225,6 @@ go.opentelemetry.io/proto/otlp v1.7.0 h1:jX1VolD6nHuFzOYso2E73H85i92Mv8JQYk0K9vz go.opentelemetry.io/proto/otlp v1.7.0/go.mod h1:fSKjH6YJ7HDlwzltzyMj036AJ3ejJLCgCSHGj4efDDo= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= From 8ce82c0bcef434fb09e5b123f76851aea72910a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= Date: Wed, 25 Mar 2026 10:08:53 +0100 Subject: [PATCH 2/2] Remove change in go.mod/go.sum --- go.mod | 3 --- go.sum | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index f97f33b645..ec9f8a7ce4 100644 --- a/go.mod +++ b/go.mod @@ -462,6 +462,3 @@ replace golang.org/x/text => golang.org/x/text v0.28.0 // tls10server=1 godebug tlsrsakex=1 - -// copy from TiDB -replace github.com/apache/arrow-go/v18 => github.com/joechenrh/arrow-go/v18 v18.0.0-20250911101656-62c34c9a3b82 diff --git a/go.sum b/go.sum index 074a281395..1cabd51f1c 100644 --- a/go.sum +++ b/go.sum @@ -145,6 +145,8 @@ github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129/go.mod h1:rFgp github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ= github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apache/arrow-go/v18 v18.5.0 h1:rmhKjVA+MKVnQIMi/qnM0OxeY4tmHlN3/Pvu+Itmd6s= +github.com/apache/arrow-go/v18 v18.5.0/go.mod h1:F1/wPb3bUy6ZdP4kEPWC7GUZm+yDmxXFERK6uDSkhr8= github.com/apache/pulsar-client-go v0.13.0 h1:XB8jbcVgBZlRkswtTFj6Xy3Hv0mtpvT8xn/ovT1c0I0= github.com/apache/pulsar-client-go v0.13.0/go.mod h1:btNzPWaKtG9geL6naJNYwXnqJJ/codYM41awyZxZLQ4= github.com/apache/thrift v0.22.0 h1:r7mTJdj51TMDe6RtcmNdQxgn9XcyfGDOzegMDRg47uc= @@ -649,8 +651,6 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmoiron/sqlx v1.3.3 h1:j82X0bf7oQ27XeqxicSZsTU5suPwKElg3oyxNn43iTk= github.com/jmoiron/sqlx v1.3.3/go.mod h1:2BljVx/86SuTyjE+aPYlHCTNvZrnJXghYGpNiXLBMCQ= -github.com/joechenrh/arrow-go/v18 v18.0.0-20250911101656-62c34c9a3b82 h1:FgHYKbQYF2aD5vlSMCHiS9Xn5PPmFLSaCc+5OYInMRc= -github.com/joechenrh/arrow-go/v18 v18.0.0-20250911101656-62c34c9a3b82/go.mod h1:xBWjSZfpqLkg1mHuVUSF8lMTUfE7SdEUl/VVVd79MIw= github.com/johannesboyne/gofakes3 v0.0.0-20230506070712-04da935ef877 h1:O7syWuYGzre3s73s+NkgB8e0ZvsIVhT/zxNU7V1gHK8= github.com/johannesboyne/gofakes3 v0.0.0-20230506070712-04da935ef877/go.mod h1:AxgWC4DDX54O2WDoQO1Ceabtn6IbktjU/7bigor+66g= github.com/joho/sqltocsv v0.0.0-20210428211105-a6d6801d59df h1:Zrb0IbuLOGHL7nrO2WrcuNWgDTlzFv3zY69QMx4ggQE=