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
|
||
|
}
|