From 033c41395a3e7cbbaa25fddc127a1e626a0032b5 Mon Sep 17 00:00:00 2001 From: Vladimir Mihailenco Date: Mon, 28 Mar 2022 16:41:07 +0300 Subject: [PATCH] fix: continue working with non UTC timezone --- README.md | 2 +- ch/chproto/server_info.go | 15 +++------------ ch/chschema/append.go | 5 ++++- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 80ceeab..cd11353 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Main features are: Unsupported: -- Server timezones other than UTC. +- `DateTime64` Resources: diff --git a/ch/chproto/server_info.go b/ch/chproto/server_info.go index c81af49..08fdb88 100644 --- a/ch/chproto/server_info.go +++ b/ch/chproto/server_info.go @@ -1,9 +1,5 @@ package chproto -import ( - "fmt" -) - type ServerInfo struct { Name string MinorVersion uint64 @@ -25,18 +21,13 @@ func (srv *ServerInfo) ReadFrom(rd *Reader) (err error) { return err } - timezone, err := rd.String() - if err != nil { + if _, err := rd.String(); err != nil { // timezone 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 + if _, err := rd.String(); err != nil { // display name return err } - if _, err = rd.Uvarint(); err != nil { // server version patch + if _, err := rd.Uvarint(); err != nil { // server version patch return err } diff --git a/ch/chschema/append.go b/ch/chschema/append.go index 1c31247..4b31849 100644 --- a/ch/chschema/append.go +++ b/ch/chschema/append.go @@ -106,7 +106,10 @@ func AppendString(b []byte, s string) []byte { } func AppendTime(b []byte, tm time.Time) []byte { - return tm.UTC().AppendFormat(b, "'2006-01-02 15:04:05'") + b = append(b, "toDateTime('"...) + b = tm.UTC().AppendFormat(b, "2006-01-02 15:04:05") + b = append(b, "', 'UTC')"...) + return b } func AppendBytes(b []byte, bytes []byte) []byte {