mirror of
https://github.com/uptrace/go-clickhouse.git
synced 2025-06-08 23:26:11 +02:00
45 lines
821 B
Go
45 lines
821 B
Go
package chproto
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
type ServerInfo struct {
|
|
Name string
|
|
MinorVersion uint64
|
|
MajorVersion uint64
|
|
Revision uint64
|
|
}
|
|
|
|
func (srv *ServerInfo) ReadFrom(rd *Reader) (err error) {
|
|
if srv.Name, err = rd.String(); err != nil {
|
|
return err
|
|
}
|
|
if srv.MajorVersion, err = rd.Uvarint(); err != nil {
|
|
return err
|
|
}
|
|
if srv.MinorVersion, err = rd.Uvarint(); err != nil {
|
|
return err
|
|
}
|
|
if srv.Revision, err = rd.Uvarint(); err != nil {
|
|
return err
|
|
}
|
|
|
|
timezone, err := rd.String()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if timezone != "UTC" {
|
|
return fmt.Errorf("ch: ClickHouse server uses timezone=%q, expected UTC", timezone)
|
|
}
|
|
|
|
if _, err = rd.String(); err != nil { // display name
|
|
return err
|
|
}
|
|
if _, err = rd.Uvarint(); err != nil { // server version patch
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|