Skip to content

Commit

Permalink
infoschema: Don't truncate versions (#45222)
Browse files Browse the repository at this point in the history
ref #16302
  • Loading branch information
dveeden committed Jul 10, 2023
1 parent cac0db2 commit 09dfc64
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 20 deletions.
2 changes: 1 addition & 1 deletion infoschema/tables.go
Original file line number Diff line number Diff line change
Expand Up @@ -1770,7 +1770,7 @@ func FormatTiDBVersion(TiDBVersion string, isDefaultVersion bool) string {
if len(nodeVersion) > 0 && nodeVersion[0] == 'v' {
nodeVersion = nodeVersion[1:]
}
nodeVersions := strings.Split(nodeVersion, "-")
nodeVersions := strings.SplitN(nodeVersion, "-", 2)
if len(nodeVersions) == 1 {
version = nodeVersions[0]
} else if len(nodeVersions) >= 2 {
Expand Down
41 changes: 22 additions & 19 deletions infoschema/test/clustertablestest/tables_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -775,28 +775,31 @@ func TestSelectHiddenColumn(t *testing.T) {

func TestFormatVersion(t *testing.T) {
// Test for defaultVersions.
defaultVersions := []string{
"5.7.25-TiDB-None",
"5.7.25-TiDB-8.0.18",
"5.7.25-TiDB-8.0.18-beta.1",
"5.7.25-TiDB-v4.0.0-beta-446-g5268094af",
"5.7.25-TiDB-",
"5.7.25-TiDB-v4.0.0-TiDB-446"}
defaultRes := []string{"None", "8.0.18", "8.0.18-beta.1", "4.0.0-beta", "", "4.0.0-TiDB"}
for i, v := range defaultVersions {
version := infoschema.FormatTiDBVersion(v, true)
require.Equal(t, defaultRes[i], version)
versions := []struct {
version string
expected string
userset bool
}{
// default versions
{"5.7.25-TiDB-None", "None", true},
{"5.7.25-TiDB-8.0.18", "8.0.18", true},
{"5.7.25-TiDB-8.0.18-beta.1", "8.0.18-beta.1", true},
{"5.7.25-TiDB-v4.0.0-beta-446-g5268094af", "4.0.0-beta-446-g5268094af", true},
{"5.7.25-TiDB-", "", true},
{"5.7.25-TiDB-v4.0.0-TiDB-446", "4.0.0-TiDB-446", true},
// userset
{"8.0.18", "8.0.18", false},
{"5.7.25-TiDB", "5.7.25-TiDB", false},
{"8.0.18-TiDB-4.0.0-beta.1", "8.0.18-TiDB-4.0.0-beta.1", false},
}

// Test for versions user set.
versions := []string{"8.0.18", "5.7.25-TiDB", "8.0.18-TiDB-4.0.0-beta.1"}
res := []string{"8.0.18", "5.7.25-TiDB", "8.0.18-TiDB-4.0.0-beta.1"}
for i, v := range versions {
version := infoschema.FormatTiDBVersion(v, false)
require.Equal(t, res[i], version)
for _, tt := range versions {
version := infoschema.FormatTiDBVersion(tt.version, tt.userset)
require.Equal(t, tt.expected, version)
}
}

versions = []string{"v4.0.12", "4.0.12", "v5.0.1"}
func TestFormatStoreServerVersion(t *testing.T) {
versions := []string{"v4.0.12", "4.0.12", "v5.0.1"}
resultVersion := []string{"4.0.12", "4.0.12", "5.0.1"}

for i, versionString := range versions {
Expand Down

0 comments on commit 09dfc64

Please sign in to comment.