From 3eda0f7805020f4cfb449e20af0643ac84ed62b5 Mon Sep 17 00:00:00 2001 From: zzdboy <28206697@qq.com> Date: Sun, 24 Sep 2023 03:52:50 +0000 Subject: [PATCH] fix KingbaseES version (#2335) Reviewed-on: https://gitea.com/xorm/xorm/pulls/2335 Reviewed-by: Lunny Xiao Co-authored-by: zzdboy <28206697@qq.com> Co-committed-by: zzdboy <28206697@qq.com> --- dialects/postgres.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/dialects/postgres.go b/dialects/postgres.go index 03966f2d..99574459 100644 --- a/dialects/postgres.go +++ b/dialects/postgres.go @@ -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: 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 if strings.HasPrefix(version, "CockroachDB") { 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", }, 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")