@@ -36,7 +36,7 @@ import (
3636 "github.com/ClickHouse/clickhouse-go/v2/lib/chcol"
3737)
3838
39- func (t Type) Column(name string, tz *time.Location ) (Interface, error) {
39+ func (t Type) Column(name string, sc *ServerContext ) (Interface, error) {
4040 switch t {
4141{{- range . } }
4242 case "{ { .ChType } }":
@@ -81,15 +81,15 @@ func (t Type) Column(name string, tz *time.Location) (Interface, error) {
8181 case "Bool", "Boolean":
8282 return &Bool{ name: name} , nil
8383 case "Date":
84- return &Date{ name: name, location: tz } , nil
84+ return &Date{ name: name, location: sc.Timezone } , nil
8585 case "Date32":
86- return &Date32{ name: name, location: tz } , nil
86+ return &Date32{ name: name, location: sc.Timezone } , nil
8787 case "UUID":
8888 return &UUID{ name: name} , nil
8989 case "Nothing":
9090 return &Nothing{ name: name} , nil
9191 case "Ring":
92- set, err := (&Array{ name: name} ).parse("Array(Point)", tz )
92+ set, err := (&Array{ name: name} ).parse("Array(Point)", sc )
9393 if err != nil {
9494 return nil, err
9595 }
@@ -99,7 +99,7 @@ func (t Type) Column(name string, tz *time.Location) (Interface, error) {
9999 name: name,
100100 } , nil
101101 case "Polygon":
102- set, err := (&Array{ name: name} ).parse("Array(Ring)", tz )
102+ set, err := (&Array{ name: name} ).parse("Array(Ring)", sc )
103103 if err != nil {
104104 return nil, err
105105 }
@@ -109,7 +109,7 @@ func (t Type) Column(name string, tz *time.Location) (Interface, error) {
109109 name: name,
110110 } , nil
111111 case "MultiPolygon":
112- set, err := (&Array{ name: name} ).parse("Array(Polygon)", tz )
112+ set, err := (&Array{ name: name} ).parse("Array(Polygon)", sc )
113113 if err != nil {
114114 return nil, err
115115 }
@@ -123,42 +123,42 @@ func (t Type) Column(name string, tz *time.Location) (Interface, error) {
123123 case "String":
124124 return &String{ name: name, col: colStrProvider(name)} , nil
125125 case "Object('json')":
126- return &JSONObject{ name: name, root: true , tz: tz } , nil
126+ return &JSONObject{ name: name, root: true , sc: sc } , nil
127127 }
128128
129129 switch strType := string(t); {
130130 case strings.HasPrefix(string(t), " Map(" ):
131- return (&Map{name: name} ).parse(t, tz )
131+ return (&Map{name: name} ).parse(t, sc )
132132 case strings.HasPrefix(string(t), "Tuple("):
133- return (&Tuple{ name: name} ).parse(t, tz )
133+ return (&Tuple{ name: name} ).parse(t, sc )
134134 case strings.HasPrefix(string(t), "Variant("):
135- return (&Variant{ name: name} ).parse(t, tz )
135+ return (&Variant{ name: name} ).parse(t, sc )
136136 case strings.HasPrefix(string(t), "Dynamic"):
137- return (&Dynamic{ name: name} ).parse(t, tz )
137+ return (&Dynamic{ name: name} ).parse(t, sc )
138138 case strings.HasPrefix(string(t), "JSON"):
139- return (&JSON{ name: name} ).parse(t, tz )
139+ return (&JSON{ name: name} ).parse(t, sc )
140140 case strings.HasPrefix(string(t), "Decimal("):
141141 return (&Decimal{ name: name} ).parse(t)
142142 case strings.HasPrefix(strType, "Nested("):
143- return (&Nested{ name: name} ).parse(t, tz )
143+ return (&Nested{ name: name} ).parse(t, sc )
144144 case strings.HasPrefix(string(t), "Array("):
145- return (&Array{ name: name} ).parse(t, tz )
145+ return (&Array{ name: name} ).parse(t, sc )
146146 case strings.HasPrefix(string(t), "Interval"):
147147 return (&Interval{ name: name} ).parse(t)
148148 case strings.HasPrefix(string(t), "Nullable"):
149- return (&Nullable{ name: name} ).parse(t, tz )
149+ return (&Nullable{ name: name} ).parse(t, sc )
150150 case strings.HasPrefix(string(t), "FixedString"):
151151 return (&FixedString{ name: name} ).parse(t)
152152 case strings.HasPrefix(string(t), "LowCardinality"):
153- return (&LowCardinality{ name: name} ).parse(t, tz )
153+ return (&LowCardinality{ name: name} ).parse(t, sc )
154154 case strings.HasPrefix(string(t), "SimpleAggregateFunction"):
155- return (&SimpleAggregateFunction{ name: name} ).parse(t, tz )
155+ return (&SimpleAggregateFunction{ name: name} ).parse(t, sc )
156156 case strings.HasPrefix(string(t), "Enum8") || strings.HasPrefix(string(t), "Enum16"):
157157 return Enum(t, name)
158158 case strings.HasPrefix(string(t), "DateTime64"):
159- return (&DateTime64{ name: name} ).parse(t, tz )
159+ return (&DateTime64{ name: name} ).parse(t, sc.Timezone )
160160 case strings.HasPrefix(strType, "DateTime") && !strings.HasPrefix(strType, "DateTime64"):
161- return (&DateTime{ name: name} ).parse(t, tz )
161+ return (&DateTime{ name: name} ).parse(t, sc.Timezone )
162162 }
163163 return nil, &UnsupportedColumnTypeError{
164164 t: t,
0 commit comments