// Copyright GoFrame Author(https://goframe.org). All Rights Reserved. // // This Source Code Form is subject to the terms of the MIT License. // If a copy of the MIT was not distributed with this file, // You can obtain one at https://github.com/gogf/gf. package clickhouse import ( "database/sql" "fmt" "github.com/ClickHouse/clickhouse-go/v2" ) // PingMaster pings the master node to check authentication or keeps the connection alive. func (d *Driver) PingMaster() error { conn, err := d.Master() if err != nil { return err } return d.ping(conn) } // PingSlave pings the slave node to check authentication or keeps the connection alive. func (d *Driver) PingSlave() error { conn, err := d.Slave() if err != nil { return err } return d.ping(conn) } // ping Returns the Clickhouse specific error. func (d *Driver) ping(conn *sql.DB) error { err := conn.Ping() if exception, ok := err.(*clickhouse.Exception); ok { return fmt.Errorf("[%d]%s", exception.Code, exception.Message) } return err }