From 4d7f9552fee9c9fa59726e14a237a69244685107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=B7=E4=BA=AE?= <739476267@qq.com> Date: Mon, 13 Nov 2023 22:05:53 +0800 Subject: [PATCH] fix: gdb unsupport aliyun hologres link (#3150) --- database/gdb/gdb.go | 2 +- database/gdb/gdb_z_mysql_internal_test.go | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/database/gdb/gdb.go b/database/gdb/gdb.go index c2c50144a..1c3344149 100644 --- a/database/gdb/gdb.go +++ b/database/gdb/gdb.go @@ -378,7 +378,7 @@ const ( ctxKeyInternalProducedSQL gctx.StrKey = `CtxKeyInternalProducedSQL` // type:[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...¶mN=valueN] - linkPattern = `(\w+):([\w\-]*):(.*?)@(\w+?)\((.+?)\)/{0,1}([^\?]*)\?{0,1}(.*)` + linkPattern = `(\w+):([\w\-\$]*):(.*?)@(\w+?)\((.+?)\)/{0,1}([^\?]*)\?{0,1}(.*)` ) type queryType int diff --git a/database/gdb/gdb_z_mysql_internal_test.go b/database/gdb/gdb_z_mysql_internal_test.go index d29589626..538ab967d 100644 --- a/database/gdb/gdb_z_mysql_internal_test.go +++ b/database/gdb/gdb_z_mysql_internal_test.go @@ -222,6 +222,22 @@ func Test_parseConfigNodeLink_WithType(t *testing.T) { t.Assert(newNode.Charset, defaultCharset) t.Assert(newNode.Protocol, `file`) }) + // #3146 + gtest.C(t, func(t *gtest.T) { + node := &ConfigNode{ + Link: `pgsql:BASIC$xxxx:123456@tcp(xxxx.hologres.aliyuncs.com:80)/xxx`, + } + newNode := parseConfigNodeLink(node) + t.Assert(newNode.Type, `pgsql`) + t.Assert(newNode.User, `BASIC$xxxx`) + t.Assert(newNode.Pass, `123456`) + t.Assert(newNode.Host, `xxxx.hologres.aliyuncs.com`) + t.Assert(newNode.Port, `80`) + t.Assert(newNode.Name, `xxx`) + t.Assert(newNode.Extra, ``) + t.Assert(newNode.Charset, defaultCharset) + t.Assert(newNode.Protocol, `tcp`) + }) } func Test_Func_doQuoteWord(t *testing.T) {