fix KingbaseES version

This commit is contained in:
zzdboy 2023-09-22 13:08:33 +08:00
parent 551de3767c
commit 3d6e2d8ced
1 changed files with 17 additions and 1 deletions

View File

@ -822,6 +822,7 @@ func (db *postgres) Version(ctx context.Context, queryer core.Queryer) (*schemas
// Postgres: 9.5.22 on x86_64-pc-linux-gnu (Debian 9.5.22-1.pgdg90+1), compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit // Postgres: 9.5.22 on x86_64-pc-linux-gnu (Debian 9.5.22-1.pgdg90+1), compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit
// Postgres: PostgreSQL 15.3, compiled by Visual C++ build 1914, 64-bit // Postgres: PostgreSQL 15.3, compiled by Visual C++ build 1914, 64-bit
// KingbaseES V008R006C008B0014 on x64, compiled by Visual C++ build 1800, 64-bit
// CockroachDB CCL v19.2.4 (x86_64-unknown-linux-gnu, built // CockroachDB CCL v19.2.4 (x86_64-unknown-linux-gnu, built
if strings.HasPrefix(version, "CockroachDB") { if strings.HasPrefix(version, "CockroachDB") {
versions := strings.Split(strings.TrimPrefix(version, "CockroachDB CCL "), " ") versions := strings.Split(strings.TrimPrefix(version, "CockroachDB CCL "), " ")
@ -845,7 +846,22 @@ func (db *postgres) Version(ctx context.Context, queryer core.Queryer) (*schemas
Edition: "PostgreSQL", Edition: "PostgreSQL",
}, nil }, nil
} }
} else if strings.HasPrefix(version, "KingbaseES") {
if strings.Contains(version, " on ") {
versions := strings.Split(strings.TrimPrefix(version, "KingbaseES "), " on ")
return &schemas.Version{
Number: versions[0],
Level: versions[1],
Edition: "KingbaseES",
}, nil
} else {
versions := strings.Split(strings.TrimPrefix(version, "KingbaseES "), ",")
return &schemas.Version{
Number: versions[0],
Level: versions[1],
Edition: "KingbaseES",
}, nil
}
} }
return nil, errors.New("unknow database version") return nil, errors.New("unknow database version")