mirror of
https://gitee.com/johng/gf
synced 2026-06-07 02:12:11 +08:00
✨ improve clickhouse driver
This commit is contained in:
@ -65,19 +65,17 @@ func (d *Driver) Open(config *gdb.ConfigNode) (*sql.DB, error) {
|
||||
source string
|
||||
driver = "clickhouse"
|
||||
)
|
||||
if config.Pass != "" {
|
||||
if config.Link != "" {
|
||||
source = config.Link
|
||||
} else if config.Pass != "" {
|
||||
source = fmt.Sprintf(
|
||||
"clickhouse://%s:%s@%s:%s/%s",
|
||||
config.User, config.Pass, config.Host, config.Port, config.Name)
|
||||
"clickhouse://%s:%s@%s:%s/%s?charset=%s&debug=%s",
|
||||
config.User, config.Pass, config.Host, config.Port, config.Name, config.Charset, gconv.String(config.Debug))
|
||||
} else {
|
||||
source = fmt.Sprintf(
|
||||
"clickhouse://%s@%s:%s/%s",
|
||||
config.User, config.Host, config.Port, config.Name)
|
||||
"clickhouse://%s@%s:%s/%s?charset=%s&debug=%s",
|
||||
config.User, config.Host, config.Port, config.Name, config.Charset, gconv.String(config.Debug))
|
||||
}
|
||||
source += fmt.Sprintf(
|
||||
"?charset=%s&debug=%s",
|
||||
config.Charset, gconv.String(config.Debug),
|
||||
)
|
||||
db, err := sql.Open(driver, source)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@ -242,3 +242,13 @@ func TestDriver_TableFields(t *testing.T) {
|
||||
gtest.AssertEQ(len(field), 4)
|
||||
gtest.AssertNQ(field, nil)
|
||||
}
|
||||
|
||||
func TestDriver_OpenLink(t *testing.T) {
|
||||
connect, err := gdb.New(gdb.ConfigNode{
|
||||
Link: "clickhouse://default@127.0.0.1:9000/default?dial_timeout=200ms&max_execution_time=60&skip_verify=true&secure=false&compress=true",
|
||||
Type: "clickhouse",
|
||||
})
|
||||
gtest.AssertNil(err)
|
||||
gtest.AssertNE(connect, nil)
|
||||
gtest.AssertNil(connect.PingMaster())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user