Add timezone support (#4502)
This commit adds a `*time.Location` instance in both `frontend.Session` and `process.SessionInfo`, to store session level timezone info. We can use `set time_zone=XXX` to modify it. Three different formats are supported, the same as MySQL: * set time_zone="SYSTEM". It sets timezone to your operating system's value, which is the default. * set time_zone="+01:00". The timezone string specifies offset to UTC. It comprises a not omittable "+/-" sign, 2-digit hour, a ":" sign, and 2-digit minute. Legal values are between -13:59 and +14:00. * set time_zone="America/New_York". The timezone string is a legal IANA TZ database name. TIMESTAMP values are converted from the current time zone to UTC for storage, and back from UTC to the current time zone for retrieval. (This does not occur for other types such as DATETIME.) Approved by: @daviszhen, @fengttt, @ouyuanning, @aptend, @aressu1985, @nnsgmsone
Showing
- pkg/container/types/date.go 13 additions, 24 deletionspkg/container/types/date.go
- pkg/container/types/datetime.go 80 additions, 127 deletionspkg/container/types/datetime.go
- pkg/container/types/datetime_test.go 10 additions, 14 deletionspkg/container/types/datetime_test.go
- pkg/container/types/interval.go 1 addition, 2 deletionspkg/container/types/interval.go
- pkg/container/types/timestamp.go 54 additions, 111 deletionspkg/container/types/timestamp.go
- pkg/container/types/timestamp_test.go 49 additions, 43 deletionspkg/container/types/timestamp_test.go
- pkg/frontend/load.go 8 additions, 7 deletionspkg/frontend/load.go
- pkg/frontend/load_test.go 1 addition, 0 deletionspkg/frontend/load_test.go
- pkg/frontend/mysql_cmd_executor.go 9 additions, 8 deletionspkg/frontend/mysql_cmd_executor.go
- pkg/frontend/session.go 19 additions, 2 deletionspkg/frontend/session.go
- pkg/frontend/types.go 2 additions, 1 deletionpkg/frontend/types.go
- pkg/frontend/variables.go 103 additions, 0 deletionspkg/frontend/variables.go
- pkg/sql/plan/base_binder.go 2 additions, 16 deletionspkg/sql/plan/base_binder.go
- pkg/sql/plan/build_util.go 6 additions, 5 deletionspkg/sql/plan/build_util.go
- pkg/sql/plan/function/builtin/binary/typecast.go 6 additions, 15 deletionspkg/sql/plan/function/builtin/binary/typecast.go
- pkg/sql/plan/function/builtin/multi/current_timestamp.go 2 additions, 2 deletionspkg/sql/plan/function/builtin/multi/current_timestamp.go
- pkg/sql/plan/function/builtin/multi/current_timestamp_test.go 5 additions, 3 deletions...sql/plan/function/builtin/multi/current_timestamp_test.go
- pkg/sql/plan/function/builtin/multi/date_add.go 2 additions, 2 deletionspkg/sql/plan/function/builtin/multi/date_add.go
- pkg/sql/plan/function/builtin/multi/date_sub.go 2 additions, 2 deletionspkg/sql/plan/function/builtin/multi/date_sub.go
- pkg/sql/plan/function/builtin/multi/from_unixtime.go 14 additions, 6 deletionspkg/sql/plan/function/builtin/multi/from_unixtime.go
Please register or sign in to comment