29 lines
532 B
Go
29 lines
532 B
Go
package clickhouse
|
|
|
|
import (
|
|
"context"
|
|
"database/sql/driver"
|
|
|
|
"github.com/kshvakov/clickhouse/lib/protocol"
|
|
)
|
|
|
|
func (ch *clickhouse) Ping(ctx context.Context) error {
|
|
return ch.ping(ctx)
|
|
}
|
|
|
|
func (ch *clickhouse) ping(ctx context.Context) error {
|
|
if ch.conn.closed {
|
|
return driver.ErrBadConn
|
|
}
|
|
ch.logf("-> ping")
|
|
finish := ch.watchCancel(ctx)
|
|
defer finish()
|
|
if err := ch.encoder.Uvarint(protocol.ClientPing); err != nil {
|
|
return err
|
|
}
|
|
if err := ch.encoder.Flush(); err != nil {
|
|
return err
|
|
}
|
|
return ch.process()
|
|
}
|