Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ go 1.26.6

require (
github.com/alecthomas/kong v1.16.1
github.com/block/mysql v0.0.0-20260906201522-a3178f8dca69
github.com/go-ini/ini v1.67.0
github.com/go-mysql-org/go-mysql v1.16.1-0.20260731133054-6f853f178dc3
github.com/go-sql-driver/mysql v1.10.0
github.com/google/uuid v1.6.0
github.com/stretchr/testify v1.12.1
go.uber.org/goleak v1.3.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ github.com/alecthomas/kong v1.16.1 h1:ixhCt93XkJ98kGposQ54+bl0IK6XwqB40AsMynU7Z8
github.com/alecthomas/kong v1.16.1/go.mod h1:wrlbXem1CWqUV5Vbmss5ISYhsVPkBb1Yo7YKJghju2I=
github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs=
github.com/alecthomas/repr v0.5.2/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
github.com/block/mysql v0.0.0-20260906201522-a3178f8dca69 h1:rCWVZKT5PdrdfosvMavnnfUBAdtaM3iepvADt5pMSJI=
github.com/block/mysql v0.0.0-20260906201522-a3178f8dca69/go.mod h1:KEo73lbxXs9cFlq+x3Z35UqGg3MTxAPfjDOR/ob/iik=
github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
Expand All @@ -14,8 +16,6 @@ github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A=
github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
github.com/go-mysql-org/go-mysql v1.16.1-0.20260731133054-6f853f178dc3 h1:ZLbHAIwCSSBhXzeM3IHrKYKlghU2WGQ4NETbld7iiyY=
github.com/go-mysql-org/go-mysql v1.16.1-0.20260731133054-6f853f178dc3/go.mod h1:VjBTZTTDKL8OMXUAhNbg3VHaVVq9HOXJEBLpAKBFIfE=
github.com/go-sql-driver/mysql v1.10.0 h1:Q+1LV8DkHJvSYAdR83XzuhDaTykuDx0l6fkXxoWCWfw=
github.com/go-sql-driver/mysql v1.10.0/go.mod h1:M+cqaI7+xxXGG9swrdeUIoPG3Y3KCkF0pZej+SK+nWk=
github.com/goccy/go-json v0.10.6 h1:p8HrPJzOakx/mn/bQtjgNjdTcN+/S6FcG2CTtQOrHVU=
github.com/goccy/go-json v0.10.6/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
Expand Down
2 changes: 1 addition & 1 deletion pkg/applier/applier.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import (
"strings"
"time"

"github.com/block/mysql"
"github.com/block/spirit/pkg/dbconn"
"github.com/block/spirit/pkg/metrics"
"github.com/block/spirit/pkg/table"
"github.com/go-sql-driver/mysql"
)

const (
Expand Down
54 changes: 27 additions & 27 deletions pkg/applier/sharded_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ import (
"testing"
"time"

"github.com/block/mysql"
"github.com/block/spirit/pkg/dbconn"
"github.com/block/spirit/pkg/table"
"github.com/block/spirit/pkg/testutils"
"github.com/block/spirit/pkg/utils"
"github.com/go-sql-driver/mysql"
"github.com/stretchr/testify/require"
)

Expand All @@ -37,19 +37,19 @@ func TestShardedApplierIntegration(t *testing.T) {

source := base.Clone()
source.DBName = "sharded_source"
sourceDB, err := sql.Open("mysql", source.FormatDSN())
sourceDB, err := sql.Open("block-mysql", source.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(sourceDB)

target1 := base.Clone()
target1.DBName = "sharded_target1"
target1DB, err := sql.Open("mysql", target1.FormatDSN())
target1DB, err := sql.Open("block-mysql", target1.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target1DB)

target2 := base.Clone()
target2.DBName = "sharded_target2"
target2DB, err := sql.Open("mysql", target2.FormatDSN())
target2DB, err := sql.Open("block-mysql", target2.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target2DB)

Expand Down Expand Up @@ -242,19 +242,19 @@ func TestShardedApplierWaitWaitsForCallbacks(t *testing.T) {

source := base.Clone()
source.DBName = "sharded_waitcb_source"
sourceDB, err := sql.Open("mysql", source.FormatDSN())
sourceDB, err := sql.Open("block-mysql", source.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(sourceDB)

target1 := base.Clone()
target1.DBName = "sharded_waitcb_target1"
target1DB, err := sql.Open("mysql", target1.FormatDSN())
target1DB, err := sql.Open("block-mysql", target1.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target1DB)

target2 := base.Clone()
target2.DBName = "sharded_waitcb_target2"
target2DB, err := sql.Open("mysql", target2.FormatDSN())
target2DB, err := sql.Open("block-mysql", target2.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target2DB)

Expand Down Expand Up @@ -359,19 +359,19 @@ func TestShardedApplierDeleteKeys(t *testing.T) {

source := base.Clone()
source.DBName = "sharded_delete_source"
sourceDB, err := sql.Open("mysql", source.FormatDSN())
sourceDB, err := sql.Open("block-mysql", source.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(sourceDB)

target1 := base.Clone()
target1.DBName = "sharded_delete_target1"
target1DB, err := sql.Open("mysql", target1.FormatDSN())
target1DB, err := sql.Open("block-mysql", target1.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target1DB)

target2 := base.Clone()
target2.DBName = "sharded_delete_target2"
target2DB, err := sql.Open("mysql", target2.FormatDSN())
target2DB, err := sql.Open("block-mysql", target2.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target2DB)

Expand Down Expand Up @@ -476,13 +476,13 @@ func TestShardedApplierDeleteKeysEmpty(t *testing.T) {

target1 := base.Clone()
target1.DBName = "sharded_delete_empty_test1"
target1DB, err := sql.Open("mysql", target1.FormatDSN())
target1DB, err := sql.Open("block-mysql", target1.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target1DB)

target2 := base.Clone()
target2.DBName = "sharded_delete_empty_test2"
target2DB, err := sql.Open("mysql", target2.FormatDSN())
target2DB, err := sql.Open("block-mysql", target2.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target2DB)

Expand Down Expand Up @@ -528,19 +528,19 @@ func TestShardedApplierUpsertRows(t *testing.T) {

source := base.Clone()
source.DBName = "sharded_upsert_source"
sourceDB, err := sql.Open("mysql", source.FormatDSN())
sourceDB, err := sql.Open("block-mysql", source.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(sourceDB)

target1 := base.Clone()
target1.DBName = "sharded_upsert_target1"
target1DB, err := sql.Open("mysql", target1.FormatDSN())
target1DB, err := sql.Open("block-mysql", target1.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target1DB)

target2 := base.Clone()
target2.DBName = "sharded_upsert_target2"
target2DB, err := sql.Open("mysql", target2.FormatDSN())
target2DB, err := sql.Open("block-mysql", target2.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target2DB)

Expand Down Expand Up @@ -693,13 +693,13 @@ func TestShardedApplierUpsertRowsSkipDeleted(t *testing.T) {

target1 := base.Clone()
target1.DBName = "sharded_upsert_deleted_test1"
target1DB, err := sql.Open("mysql", target1.FormatDSN())
target1DB, err := sql.Open("block-mysql", target1.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target1DB)

target2 := base.Clone()
target2.DBName = "sharded_upsert_deleted_test2"
target2DB, err := sql.Open("mysql", target2.FormatDSN())
target2DB, err := sql.Open("block-mysql", target2.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target2DB)

Expand Down Expand Up @@ -768,13 +768,13 @@ func TestKeyRangesMustBeNonOverlapping(t *testing.T) {

target1 := base.Clone()
target1.DBName = "overlap_test1"
target1DB, err := sql.Open("mysql", target1.FormatDSN())
target1DB, err := sql.Open("block-mysql", target1.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target1DB)

target2 := base.Clone()
target2.DBName = "overlap_test2"
target2DB, err := sql.Open("mysql", target2.FormatDSN())
target2DB, err := sql.Open("block-mysql", target2.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target2DB)

Expand Down Expand Up @@ -827,7 +827,7 @@ func TestKeyRangesMustBeNonOverlapping(t *testing.T) {
t.Run("three shards with overlap", func(t *testing.T) {
target3 := base.Clone()
target3.DBName = "overlap_test1" // Reuse existing DB
target3DB, err := sql.Open("mysql", target3.FormatDSN())
target3DB, err := sql.Open("block-mysql", target3.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target3DB)

Expand All @@ -848,7 +848,7 @@ func TestKeyRangesMustBeNonOverlapping(t *testing.T) {
t.Run("three adjacent non-overlapping ranges", func(t *testing.T) {
target3 := base.Clone()
target3.DBName = "overlap_test1" // Reuse existing DB
target3DB, err := sql.Open("mysql", target3.FormatDSN())
target3DB, err := sql.Open("block-mysql", target3.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target3DB)

Expand All @@ -875,13 +875,13 @@ func TestShardedApplierUpsertRowsEmpty(t *testing.T) {

target1 := base.Clone()
target1.DBName = "sharded_upsert_empty_test1"
target1DB, err := sql.Open("mysql", target1.FormatDSN())
target1DB, err := sql.Open("block-mysql", target1.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target1DB)

target2 := base.Clone()
target2.DBName = "sharded_upsert_empty_test2"
target2DB, err := sql.Open("mysql", target2.FormatDSN())
target2DB, err := sql.Open("block-mysql", target2.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(target2DB)

Expand Down Expand Up @@ -933,7 +933,7 @@ func setupShardedUnderLockTest(t *testing.T, prefix string) (sourceTable, target
openDB := func(dbName string) *sql.DB {
cfg := base.Clone()
cfg.DBName = dbName
db, err := sql.Open("mysql", cfg.FormatDSN())
db, err := sql.Open("block-mysql", cfg.FormatDSN())
require.NoError(t, err)
t.Cleanup(func() { utils.CloseAndLog(db) })
return db
Expand Down Expand Up @@ -1186,19 +1186,19 @@ func TestShardedApplierRenamedTarget(t *testing.T) {

watched := base.Clone()
watched.DBName = "sharded_renamed_watched"
watchedDB, err := sql.Open("mysql", watched.FormatDSN())
watchedDB, err := sql.Open("block-mysql", watched.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(watchedDB)

shard1 := base.Clone()
shard1.DBName = "sharded_renamed_shard1"
shard1DB, err := sql.Open("mysql", shard1.FormatDSN())
shard1DB, err := sql.Open("block-mysql", shard1.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(shard1DB)

shard2 := base.Clone()
shard2.DBName = "sharded_renamed_shard2"
shard2DB, err := sql.Open("mysql", shard2.FormatDSN())
shard2DB, err := sql.Open("block-mysql", shard2.FormatDSN())
require.NoError(t, err)
defer utils.CloseAndLog(shard2DB)

Expand Down
Loading