Skip to content

Commit 3001e7e

Browse files
committed
variant tuple implemented
1 parent 091ba5b commit 3001e7e

File tree

1 file changed

+322
-6
lines changed

1 file changed

+322
-6
lines changed

internal/params/variant_turple.go

Lines changed: 322 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package params
33
import (
44
"github.com/ydb-platform/ydb-go-sdk/v3/internal/types"
55
"github.com/ydb-platform/ydb-go-sdk/v3/internal/value"
6+
"time"
67
)
78

89
type (
@@ -39,21 +40,155 @@ func (vtt *variantTupleTypes) AddTypes(args ...types.Type) *variantTupleTypes {
3940
return vtt
4041
}
4142

42-
// EACH TYPE
43+
func (vtt *variantTupleTypes) Text() *variantTupleTypes {
44+
vtt.tuple.types = append(vtt.tuple.types, types.Text)
45+
46+
return vtt
47+
}
48+
49+
func (vtt *variantTupleTypes) Bytes() *variantTupleTypes {
50+
vtt.tuple.types = append(vtt.tuple.types, types.Bytes)
51+
52+
return vtt
53+
}
4354

4455
func (vtt *variantTupleTypes) Bool() *variantTupleTypes {
4556
vtt.tuple.types = append(vtt.tuple.types, types.Bool)
4657

4758
return vtt
4859
}
4960

61+
func (vtt *variantTupleTypes) Uint64() *variantTupleTypes {
62+
vtt.tuple.types = append(vtt.tuple.types, types.Uint64)
63+
64+
return vtt
65+
}
66+
5067
func (vtt *variantTupleTypes) Int64() *variantTupleTypes {
5168
vtt.tuple.types = append(vtt.tuple.types, types.Int64)
5269

5370
return vtt
5471
}
5572

56-
//
73+
func (vtt *variantTupleTypes) Uint32() *variantTupleTypes {
74+
vtt.tuple.types = append(vtt.tuple.types, types.Uint32)
75+
76+
return vtt
77+
}
78+
79+
func (vtt *variantTupleTypes) Int32() *variantTupleTypes {
80+
vtt.tuple.types = append(vtt.tuple.types, types.Int32)
81+
82+
return vtt
83+
}
84+
85+
func (vtt *variantTupleTypes) Uint16() *variantTupleTypes {
86+
vtt.tuple.types = append(vtt.tuple.types, types.Uint16)
87+
88+
return vtt
89+
}
90+
91+
func (vtt *variantTupleTypes) Int16() *variantTupleTypes {
92+
vtt.tuple.types = append(vtt.tuple.types, types.Int16)
93+
94+
return vtt
95+
}
96+
97+
func (vtt *variantTupleTypes) Uint8() *variantTupleTypes {
98+
vtt.tuple.types = append(vtt.tuple.types, types.Uint8)
99+
100+
return vtt
101+
}
102+
103+
func (vtt *variantTupleTypes) Int8() *variantTupleTypes {
104+
vtt.tuple.types = append(vtt.tuple.types, types.Int8)
105+
106+
return vtt
107+
}
108+
109+
func (vtt *variantTupleTypes) Float() *variantTupleTypes {
110+
vtt.tuple.types = append(vtt.tuple.types, types.Float)
111+
112+
return vtt
113+
}
114+
115+
func (vtt *variantTupleTypes) Double() *variantTupleTypes {
116+
vtt.tuple.types = append(vtt.tuple.types, types.Double)
117+
118+
return vtt
119+
}
120+
121+
func (vtt *variantTupleTypes) Decimal(precision, scale uint32) *variantTupleTypes {
122+
vtt.tuple.types = append(vtt.tuple.types, types.NewDecimal(precision, scale))
123+
124+
return vtt
125+
}
126+
127+
func (vtt *variantTupleTypes) Timestamp() *variantTupleTypes {
128+
vtt.tuple.types = append(vtt.tuple.types, types.Timestamp)
129+
130+
return vtt
131+
}
132+
133+
func (vtt *variantTupleTypes) Date() *variantTupleTypes {
134+
vtt.tuple.types = append(vtt.tuple.types, types.Date)
135+
136+
return vtt
137+
}
138+
139+
func (vtt *variantTupleTypes) Datetime() *variantTupleTypes {
140+
vtt.tuple.types = append(vtt.tuple.types, types.Datetime)
141+
142+
return vtt
143+
}
144+
145+
func (vtt *variantTupleTypes) Interval() *variantTupleTypes {
146+
vtt.tuple.types = append(vtt.tuple.types, types.Interval)
147+
148+
return vtt
149+
}
150+
151+
func (vtt *variantTupleTypes) JSON() *variantTupleTypes {
152+
vtt.tuple.types = append(vtt.tuple.types, types.JSON)
153+
154+
return vtt
155+
}
156+
157+
func (vtt *variantTupleTypes) JSONDocument() *variantTupleTypes {
158+
vtt.tuple.types = append(vtt.tuple.types, types.JSONDocument)
159+
160+
return vtt
161+
}
162+
163+
func (vtt *variantTupleTypes) YSON() *variantTupleTypes {
164+
vtt.tuple.types = append(vtt.tuple.types, types.YSON)
165+
166+
return vtt
167+
}
168+
169+
func (vtt *variantTupleTypes) UUID() *variantTupleTypes {
170+
vtt.tuple.types = append(vtt.tuple.types, types.UUID)
171+
172+
return vtt
173+
}
174+
175+
func (vtt *variantTupleTypes) TzDate() *variantTupleTypes {
176+
vtt.tuple.types = append(vtt.tuple.types, types.TzDate)
177+
178+
return vtt
179+
}
180+
181+
func (vtt *variantTupleTypes) TzTimestamp() *variantTupleTypes {
182+
vtt.tuple.types = append(vtt.tuple.types, types.TzTimestamp)
183+
184+
return vtt
185+
}
186+
187+
func (vtt *variantTupleTypes) TzDatetime() *variantTupleTypes {
188+
vtt.tuple.types = append(vtt.tuple.types, types.TzDatetime)
189+
190+
return vtt
191+
}
57192

58193
func (vtt *variantTupleTypes) Index(i uint32) *variantTupleItem {
59194
vtt.tuple.index = i
@@ -63,7 +198,22 @@ func (vtt *variantTupleTypes) Index(i uint32) *variantTupleItem {
63198
}
64199
}
65200

66-
// all types
201+
func (vti *variantTupleItem) Text(v string) *variantTupleBuilder {
202+
vti.tuple.value = value.TextValue(v)
203+
204+
return &variantTupleBuilder{
205+
tuple: vti.tuple,
206+
}
207+
}
208+
209+
func (vti *variantTupleItem) Bytes(v []byte) *variantTupleBuilder {
210+
vti.tuple.value = value.BytesValue(v)
211+
212+
return &variantTupleBuilder{
213+
tuple: vti.tuple,
214+
}
215+
}
216+
67217
func (vti *variantTupleItem) Bool(v bool) *variantTupleBuilder {
68218
vti.tuple.value = value.BoolValue(v)
69219

@@ -72,15 +222,181 @@ func (vti *variantTupleItem) Bool(v bool) *variantTupleBuilder {
72222
}
73223
}
74224

75-
func (vti *variantTupleItem) Text(v string) *variantTupleBuilder {
76-
vti.tuple.value = value.TextValue(v)
225+
func (vti *variantTupleItem) Uint64(v uint64) *variantTupleBuilder {
226+
vti.tuple.value = value.Uint64Value(v)
227+
228+
return &variantTupleBuilder{
229+
tuple: vti.tuple,
230+
}
231+
}
232+
233+
func (vti *variantTupleItem) Int64(v int64) *variantTupleBuilder {
234+
vti.tuple.value = value.Int64Value(v)
77235

78236
return &variantTupleBuilder{
79237
tuple: vti.tuple,
80238
}
81239
}
82240

83-
//
241+
func (vti *variantTupleItem) Uint32(v uint32) *variantTupleBuilder {
242+
vti.tuple.value = value.Uint32Value(v)
243+
244+
return &variantTupleBuilder{
245+
tuple: vti.tuple,
246+
}
247+
}
248+
249+
func (vti *variantTupleItem) Int32(v int32) *variantTupleBuilder {
250+
vti.tuple.value = value.Int32Value(v)
251+
252+
return &variantTupleBuilder{
253+
tuple: vti.tuple,
254+
}
255+
}
256+
257+
func (vti *variantTupleItem) Uint16(v uint16) *variantTupleBuilder {
258+
vti.tuple.value = value.Uint16Value(v)
259+
260+
return &variantTupleBuilder{
261+
tuple: vti.tuple,
262+
}
263+
}
264+
265+
func (vti *variantTupleItem) Int16(v int16) *variantTupleBuilder {
266+
vti.tuple.value = value.Int16Value(v)
267+
268+
return &variantTupleBuilder{
269+
tuple: vti.tuple,
270+
}
271+
}
272+
273+
func (vti *variantTupleItem) Uint8(v uint8) *variantTupleBuilder {
274+
vti.tuple.value = value.Uint8Value(v)
275+
276+
return &variantTupleBuilder{
277+
tuple: vti.tuple,
278+
}
279+
}
280+
281+
func (vti *variantTupleItem) Int8(v int8) *variantTupleBuilder {
282+
vti.tuple.value = value.Int8Value(v)
283+
284+
return &variantTupleBuilder{
285+
tuple: vti.tuple,
286+
}
287+
}
288+
289+
func (vti *variantTupleItem) Float(v float32) *variantTupleBuilder {
290+
vti.tuple.value = value.FloatValue(v)
291+
292+
return &variantTupleBuilder{
293+
tuple: vti.tuple,
294+
}
295+
}
296+
297+
func (vti *variantTupleItem) Double(v float64) *variantTupleBuilder {
298+
vti.tuple.value = value.DoubleValue(v)
299+
300+
return &variantTupleBuilder{
301+
tuple: vti.tuple,
302+
}
303+
}
304+
305+
func (vti *variantTupleItem) Decimal(v [16]byte, precision, scale uint32) *variantTupleBuilder {
306+
vti.tuple.value = value.DecimalValue(v, precision, scale)
307+
308+
return &variantTupleBuilder{
309+
tuple: vti.tuple,
310+
}
311+
}
312+
313+
func (vti *variantTupleItem) Timestamp(v time.Time) *variantTupleBuilder {
314+
vti.tuple.value = value.TimestampValueFromTime(v)
315+
316+
return &variantTupleBuilder{
317+
tuple: vti.tuple,
318+
}
319+
}
320+
321+
func (vti *variantTupleItem) Date(v time.Time) *variantTupleBuilder {
322+
vti.tuple.value = value.DateValueFromTime(v)
323+
324+
return &variantTupleBuilder{
325+
tuple: vti.tuple,
326+
}
327+
}
328+
329+
func (vti *variantTupleItem) Datetime(v time.Time) *variantTupleBuilder {
330+
vti.tuple.value = value.DatetimeValueFromTime(v)
331+
332+
return &variantTupleBuilder{
333+
tuple: vti.tuple,
334+
}
335+
}
336+
337+
func (vti *variantTupleItem) Interval(v time.Duration) *variantTupleBuilder {
338+
vti.tuple.value = value.IntervalValueFromDuration(v)
339+
340+
return &variantTupleBuilder{
341+
tuple: vti.tuple,
342+
}
343+
}
344+
345+
func (vti *variantTupleItem) JSON(v string) *variantTupleBuilder {
346+
vti.tuple.value = value.JSONValue(v)
347+
348+
return &variantTupleBuilder{
349+
tuple: vti.tuple,
350+
}
351+
}
352+
353+
func (vti *variantTupleItem) JSONDocument(v string) *variantTupleBuilder {
354+
vti.tuple.value = value.JSONDocumentValue(v)
355+
356+
return &variantTupleBuilder{
357+
tuple: vti.tuple,
358+
}
359+
}
360+
361+
func (vti *variantTupleItem) YSON(v []byte) *variantTupleBuilder {
362+
vti.tuple.value = value.YSONValue(v)
363+
364+
return &variantTupleBuilder{
365+
tuple: vti.tuple,
366+
}
367+
}
368+
369+
func (vti *variantTupleItem) UUID(v [16]byte) *variantTupleBuilder {
370+
vti.tuple.value = value.UUIDValue(v)
371+
372+
return &variantTupleBuilder{
373+
tuple: vti.tuple,
374+
}
375+
}
376+
377+
func (vti *variantTupleItem) TzDate(v time.Time) *variantTupleBuilder {
378+
vti.tuple.value = value.TzDateValueFromTime(v)
379+
380+
return &variantTupleBuilder{
381+
tuple: vti.tuple,
382+
}
383+
}
384+
385+
func (vti *variantTupleItem) TzTimestamp(v time.Time) *variantTupleBuilder {
386+
vti.tuple.value = value.TzTimestampValueFromTime(v)
387+
388+
return &variantTupleBuilder{
389+
tuple: vti.tuple,
390+
}
391+
}
392+
393+
func (vti *variantTupleItem) TzDatetime(v time.Time) *variantTupleBuilder {
394+
vti.tuple.value = value.TzDatetimeValueFromTime(v)
395+
396+
return &variantTupleBuilder{
397+
tuple: vti.tuple,
398+
}
399+
}
84400

85401
func (vtb *variantTupleBuilder) EndTuple() *variantBuilder {
86402
vtb.tuple.parent.value = value.VariantValueTuple(vtb.tuple.value, vtb.tuple.index, types.NewVariantTuple(vtb.tuple.types...))

0 commit comments

Comments
 (0)