infoschema: Don't truncate versions (#45222)

ref pingcap/tidb#16302
This commit is contained in:
Daniël van Eeden
2023-07-10 14:02:12 +02:00
committed by GitHub
parent cac0db2881
commit 09dfc64f46
2 changed files with 23 additions and 20 deletions

View File

@ -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 {

View File

@ -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 {