Skip to content

Commit 76eec20

Browse files
kyleconroyclaude
andauthored
Remove unused TiDB nextgen version helpers from mysql/const.go (#4)
NormalizeTiDBReleaseVersionForNextGen, BuildTiDBXReleaseVersion, and BuildTiDBXServerVersion were carried over from the upstream TiDB parser but are TiDB-server release-packaging concerns rather than parsing concerns. Inside this repository they were only referenced by their own tests, so drop the helpers, the tests, and their supporting constants. The legacyTiDBReleaseVersionPlaceholder constant doubled as the initial value of the externally visible TiDBReleaseVersion variable, so inline the placeholder string there. This drops the github.com/coreos/go-semver dependency, which was used solely by BuildTiDBXReleaseVersion. https://claude.ai/code/session_011eUiTSJanyruVRnV5b7fJw Co-authored-by: Claude <noreply@anthropic.com>
1 parent f9c3aee commit 76eec20

4 files changed

Lines changed: 2 additions & 118 deletions

File tree

go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ module github.com/sqlc-dev/marino
33
go 1.25
44

55
require (
6-
github.com/coreos/go-semver v0.3.1
76
github.com/go-sql-driver/mysql v1.7.1
87
github.com/pingcap/errors v0.11.5-0.20250523034308-74f78ae071ee
98
github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
2-
github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
31
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
42
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
53
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

mysql/const.go

Lines changed: 1 addition & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import (
1717
"fmt"
1818
"strings"
1919

20-
"github.com/coreos/go-semver/semver"
2120
"github.com/pingcap/errors"
2221
"github.com/sqlc-dev/marino/format"
2322
)
@@ -33,77 +32,17 @@ const (
3332
// one with MySQL compatibility version, with this fixed then we can parse TiDB
3433
// version from ServerVersion.
3534
VersionSeparator = "-TiDB-"
36-
37-
// tidbXReleaseVersionPrefix is used in `select tidb_version()` output of nextgen.
38-
tidbXReleaseVersionPrefix = "CLOUD."
39-
40-
legacyTiDBReleaseVersionPlaceholder = "v8.4.0-this-is-a-placeholder"
41-
// tidbXPlaceholderReleaseVersion is the default release version for nextgen when no
42-
// release version is injected during build, such as when running in IDE.
43-
tidbXPlaceholderReleaseVersion = "v26.3.0-this-is-a-placeholder"
44-
// TiDBXVerMinYear is set to 2025 just for sanity check.
45-
// our first release of next-gen since 2025
46-
TiDBXVerMinYear = 2025
47-
// TiDBXVerMaxYear is set to 2099 just for sanity check, we don't expect the
48-
// year part of release version to be larger than this.
49-
// enough for now.
50-
TiDBXVerMaxYear = 2099
5135
)
5236

5337
// Version information.
5438
var (
5539
// TiDBReleaseVersion is initialized by (git describe --tags) in Makefile.
56-
TiDBReleaseVersion = legacyTiDBReleaseVersionPlaceholder
40+
TiDBReleaseVersion = "v8.4.0-this-is-a-placeholder"
5741

5842
// ServerVersion is the version information of this tidb-server in MySQL's format.
5943
ServerVersion = fmt.Sprintf("%s%s%s", mysqlCompatibilityVersion, VersionSeparator, TiDBReleaseVersion)
6044
)
6145

62-
// NormalizeTiDBReleaseVersionForNextGen rewrites the legacy placeholder into a nextgen
63-
// placeholder that follows `v[2-digit-year].[month].[fix-version]`.
64-
// pkg/parser is Golang project, it cannot use kerneltype pkg to conditionally
65-
// compile different code for next-gen and classic, so we have to rewrite the
66-
// placeholder value in this function.
67-
func NormalizeTiDBReleaseVersionForNextGen(releaseVersion string) string {
68-
// the version is not set if we run next-gen tidb from IDE.
69-
if releaseVersion == legacyTiDBReleaseVersionPlaceholder {
70-
return tidbXPlaceholderReleaseVersion
71-
}
72-
return releaseVersion
73-
}
74-
75-
// BuildTiDBXReleaseVersion converts mysql.TiDBReleaseVersion into the nextgen visible
76-
// version format `CLOUD.<4-digit-year-2-digit-month>.<fix-version><optional-pre-release>`.
77-
func BuildTiDBXReleaseVersion(releaseVersion string) (string, error) {
78-
if !strings.HasPrefix(releaseVersion, "v") {
79-
return "", errors.Errorf("invalid TiDB release version %q, should start with 'v'", releaseVersion)
80-
}
81-
rawVer := strings.TrimPrefix(releaseVersion, "v")
82-
ver, err := semver.NewVersion(rawVer)
83-
if err != nil {
84-
return "", errors.Errorf("invalid TiDB release version %q, expect a semantic version", releaseVersion)
85-
}
86-
year := 2000 + ver.Major
87-
if year < TiDBXVerMinYear || year > TiDBXVerMaxYear || ver.Minor < 1 || ver.Minor > 12 {
88-
return "", errors.Errorf("invalid TiDB release version %q, the semantic version part should be in [2-digit-year].[month].[fix-version]-[xxx] format", releaseVersion)
89-
}
90-
preRelease := string(ver.PreRelease)
91-
if preRelease != "" {
92-
preRelease = "-" + preRelease
93-
}
94-
return fmt.Sprintf("%s%d%02d.%d%s", tidbXReleaseVersionPrefix, year, ver.Minor, ver.Patch, preRelease), nil
95-
}
96-
97-
// BuildTiDBXServerVersion converts mysql.TiDBReleaseVersion into MySQL server version
98-
// format `8.0.11-TiDB-CLOUD.<4-digit-year-2-digit-month>.<fix-version>`.
99-
func BuildTiDBXServerVersion(releaseVersion string) (string, error) {
100-
tidbXReleaseVersion, err := BuildTiDBXReleaseVersion(releaseVersion)
101-
if err != nil {
102-
return "", err
103-
}
104-
return fmt.Sprintf("%s%s%s", mysqlCompatibilityVersion, VersionSeparator, tidbXReleaseVersion), nil
105-
}
106-
10746
// Header information.
10847
const (
10948
OKHeader byte = 0x00

mysql/const_test.go

Lines changed: 1 addition & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,8 @@
1414
package mysql
1515

1616
import (
17-
"testing"
18-
1917
"reflect"
20-
"strings"
18+
"testing"
2119
)
2220

2321
func TestSQLMode(t *testing.T) {
@@ -104,53 +102,3 @@ func TestVersionSeparator(t *testing.T) {
104102
t.Fatalf("got %v, want %v", VersionSeparator, "-TiDB-")
105103
}
106104
}
107-
108-
func TestBuildTiDBXReleaseVersion(t *testing.T) {
109-
tidbXVersion, err := BuildTiDBXReleaseVersion("v26.3.0")
110-
if err != nil {
111-
t.Fatal(err)
112-
}
113-
if !reflect.DeepEqual("CLOUD.202603.0", tidbXVersion) {
114-
t.Fatalf("got %v, want %v", tidbXVersion, "CLOUD.202603.0")
115-
}
116-
117-
tidbXVersion, err = BuildTiDBXReleaseVersion("v26.3.0-xxx")
118-
if err != nil {
119-
t.Fatal(err)
120-
}
121-
if !reflect.DeepEqual("CLOUD.202603.0-xxx", tidbXVersion) {
122-
t.Fatalf("got %v, want %v", tidbXVersion, "CLOUD.202603.0-xxx")
123-
}
124-
125-
serverVersion, err := BuildTiDBXServerVersion("v26.3.0")
126-
if err != nil {
127-
t.Fatal(err)
128-
}
129-
if !reflect.DeepEqual("8.0.11-TiDB-CLOUD.202603.0", serverVersion) {
130-
t.Fatalf("got %v, want %v", serverVersion, "8.0.11-TiDB-CLOUD.202603.0")
131-
}
132-
133-
serverVersion, err = BuildTiDBXServerVersion("v26.3.0-xxx")
134-
if err != nil {
135-
t.Fatal(err)
136-
}
137-
if !reflect.DeepEqual("8.0.11-TiDB-CLOUD.202603.0-xxx", serverVersion) {
138-
t.Fatalf("got %v, want %v", serverVersion, "8.0.11-TiDB-CLOUD.202603.0-xxx")
139-
}
140-
141-
for _, ver := range []string{"26.1.1", "v26xxxx", "v24.1.1", "v26.0.1", "v26.13.1"} {
142-
_, err = BuildTiDBXReleaseVersion(ver)
143-
if err == nil || !strings.Contains(err.Error(), "invalid TiDB release version") {
144-
t.Fatalf("expected error containing %q, got %v", "invalid TiDB release version", err)
145-
}
146-
}
147-
}
148-
149-
func TestNormalizeTiDBReleaseVersionForNextGen(t *testing.T) {
150-
if !reflect.DeepEqual(tidbXPlaceholderReleaseVersion, NormalizeTiDBReleaseVersionForNextGen(legacyTiDBReleaseVersionPlaceholder)) {
151-
t.Fatalf("got %v, want %v", NormalizeTiDBReleaseVersionForNextGen(legacyTiDBReleaseVersionPlaceholder), tidbXPlaceholderReleaseVersion)
152-
}
153-
if !reflect.DeepEqual("v26.3.0", NormalizeTiDBReleaseVersionForNextGen("v26.3.0")) {
154-
t.Fatalf("got %v, want %v", NormalizeTiDBReleaseVersionForNextGen("v26.3.0"), "v26.3.0")
155-
}
156-
}

0 commit comments

Comments
 (0)