Skip to content

Commit 1a5e570

Browse files
authored
Merge pull request #1453 from ydb-platform/param-builder-optional
nullable value within parambuilder
2 parents 9cd2f73 + bc541e0 commit 1a5e570

File tree

6 files changed

+446
-161
lines changed

6 files changed

+446
-161
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
* Fixed bug in experimental api: `ydb.ParamsBuilder().Param().Optional()` receive pointer and really produce optional value.
2+
13
## v3.80.8
24
* Added `ydb.WithLazyTx(bool)` option for create lazy transactions on `query.Session.Begin` call
35
* Added initial experimental topic and cdc-helpers, see examples in [tests/integration/topic_helpers_test.go](https://github.com/ydb-platform/ydb-go-sdk/blob/master/tests/integration/topic_helpers_test.go)

internal/params/optional.go

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -27,152 +27,152 @@ func (b *optionalBuilder) EndOptional() Builder {
2727
return b.opt.parent
2828
}
2929

30-
func (p *optional) Text(v string) *optionalBuilder {
31-
p.value = value.TextValue(v)
30+
func (p *optional) Text(v *string) *optionalBuilder {
31+
p.value = value.NullableTextValue(v)
3232

3333
return &optionalBuilder{opt: p}
3434
}
3535

36-
func (p *optional) Bytes(v []byte) *optionalBuilder {
37-
p.value = value.BytesValue(v)
36+
func (p *optional) Bytes(v *[]byte) *optionalBuilder {
37+
p.value = value.NullableBytesValue(v)
3838

3939
return &optionalBuilder{opt: p}
4040
}
4141

42-
func (p *optional) Bool(v bool) *optionalBuilder {
43-
p.value = value.BoolValue(v)
42+
func (p *optional) Bool(v *bool) *optionalBuilder {
43+
p.value = value.NullableBoolValue(v)
4444

4545
return &optionalBuilder{opt: p}
4646
}
4747

48-
func (p *optional) Uint64(v uint64) *optionalBuilder {
49-
p.value = value.Uint64Value(v)
48+
func (p *optional) Uint64(v *uint64) *optionalBuilder {
49+
p.value = value.NullableUint64Value(v)
5050

5151
return &optionalBuilder{opt: p}
5252
}
5353

54-
func (p *optional) Int64(v int64) *optionalBuilder {
55-
p.value = value.Int64Value(v)
54+
func (p *optional) Int64(v *int64) *optionalBuilder {
55+
p.value = value.NullableInt64Value(v)
5656

5757
return &optionalBuilder{opt: p}
5858
}
5959

60-
func (p *optional) Uint32(v uint32) *optionalBuilder {
61-
p.value = value.Uint32Value(v)
60+
func (p *optional) Uint32(v *uint32) *optionalBuilder {
61+
p.value = value.NullableUint32Value(v)
6262

6363
return &optionalBuilder{opt: p}
6464
}
6565

66-
func (p *optional) Int32(v int32) *optionalBuilder {
67-
p.value = value.Int32Value(v)
66+
func (p *optional) Int32(v *int32) *optionalBuilder {
67+
p.value = value.NullableInt32Value(v)
6868

6969
return &optionalBuilder{opt: p}
7070
}
7171

72-
func (p *optional) Uint16(v uint16) *optionalBuilder {
73-
p.value = value.Uint16Value(v)
72+
func (p *optional) Uint16(v *uint16) *optionalBuilder {
73+
p.value = value.NullableUint16Value(v)
7474

7575
return &optionalBuilder{opt: p}
7676
}
7777

78-
func (p *optional) Int16(v int16) *optionalBuilder {
79-
p.value = value.Int16Value(v)
78+
func (p *optional) Int16(v *int16) *optionalBuilder {
79+
p.value = value.NullableInt16Value(v)
8080

8181
return &optionalBuilder{opt: p}
8282
}
8383

84-
func (p *optional) Uint8(v uint8) *optionalBuilder {
85-
p.value = value.Uint8Value(v)
84+
func (p *optional) Uint8(v *uint8) *optionalBuilder {
85+
p.value = value.NullableUint8Value(v)
8686

8787
return &optionalBuilder{opt: p}
8888
}
8989

90-
func (p *optional) Int8(v int8) *optionalBuilder {
91-
p.value = value.Int8Value(v)
90+
func (p *optional) Int8(v *int8) *optionalBuilder {
91+
p.value = value.NullableInt8Value(v)
9292

9393
return &optionalBuilder{opt: p}
9494
}
9595

96-
func (p *optional) Float(v float32) *optionalBuilder {
97-
p.value = value.FloatValue(v)
96+
func (p *optional) Float(v *float32) *optionalBuilder {
97+
p.value = value.NullableFloatValue(v)
9898

9999
return &optionalBuilder{opt: p}
100100
}
101101

102-
func (p *optional) Double(v float64) *optionalBuilder {
103-
p.value = value.DoubleValue(v)
102+
func (p *optional) Double(v *float64) *optionalBuilder {
103+
p.value = value.NullableDoubleValue(v)
104104

105105
return &optionalBuilder{opt: p}
106106
}
107107

108-
func (p *optional) Decimal(v [16]byte, precision, scale uint32) *optionalBuilder {
109-
p.value = value.DecimalValue(v, precision, scale)
108+
func (p *optional) Decimal(v *[16]byte, precision, scale uint32) *optionalBuilder {
109+
p.value = value.NullableDecimalValue(v, precision, scale)
110110

111111
return &optionalBuilder{opt: p}
112112
}
113113

114-
func (p *optional) Timestamp(v time.Time) *optionalBuilder {
115-
p.value = value.TimestampValueFromTime(v)
114+
func (p *optional) Timestamp(v *time.Time) *optionalBuilder {
115+
p.value = value.NullableTimestampValueFromTime(v)
116116

117117
return &optionalBuilder{opt: p}
118118
}
119119

120-
func (p *optional) Date(v time.Time) *optionalBuilder {
121-
p.value = value.DateValueFromTime(v)
120+
func (p *optional) Date(v *time.Time) *optionalBuilder {
121+
p.value = value.NullableDateValueFromTime(v)
122122

123123
return &optionalBuilder{opt: p}
124124
}
125125

126-
func (p *optional) Datetime(v time.Time) *optionalBuilder {
127-
p.value = value.DatetimeValueFromTime(v)
126+
func (p *optional) Datetime(v *time.Time) *optionalBuilder {
127+
p.value = value.NullableDatetimeValueFromTime(v)
128128

129129
return &optionalBuilder{opt: p}
130130
}
131131

132-
func (p *optional) Interval(v time.Duration) *optionalBuilder {
133-
p.value = value.IntervalValueFromDuration(v)
132+
func (p *optional) Interval(v *time.Duration) *optionalBuilder {
133+
p.value = value.NullableIntervalValueFromDuration(v)
134134

135135
return &optionalBuilder{opt: p}
136136
}
137137

138-
func (p *optional) JSON(v string) *optionalBuilder {
139-
p.value = value.JSONValue(v)
138+
func (p *optional) JSON(v *string) *optionalBuilder {
139+
p.value = value.NullableJSONValue(v)
140140

141141
return &optionalBuilder{opt: p}
142142
}
143143

144-
func (p *optional) JSONDocument(v string) *optionalBuilder {
145-
p.value = value.JSONDocumentValue(v)
144+
func (p *optional) JSONDocument(v *string) *optionalBuilder {
145+
p.value = value.NullableJSONDocumentValue(v)
146146

147147
return &optionalBuilder{opt: p}
148148
}
149149

150-
func (p *optional) YSON(v []byte) *optionalBuilder {
151-
p.value = value.YSONValue(v)
150+
func (p *optional) YSON(v *[]byte) *optionalBuilder {
151+
p.value = value.NullableYSONValueFromBytes(v)
152152

153153
return &optionalBuilder{opt: p}
154154
}
155155

156-
func (p *optional) UUID(v [16]byte) *optionalBuilder {
157-
p.value = value.UUIDValue(v)
156+
func (p *optional) UUID(v *[16]byte) *optionalBuilder {
157+
p.value = value.NullableUUIDValue(v)
158158

159159
return &optionalBuilder{opt: p}
160160
}
161161

162-
func (p *optional) TzDate(v time.Time) *optionalBuilder {
163-
p.value = value.TzDateValueFromTime(v)
162+
func (p *optional) TzDate(v *time.Time) *optionalBuilder {
163+
p.value = value.NullableTzDateValueFromTime(v)
164164

165165
return &optionalBuilder{opt: p}
166166
}
167167

168-
func (p *optional) TzTimestamp(v time.Time) *optionalBuilder {
169-
p.value = value.TzTimestampValueFromTime(v)
168+
func (p *optional) TzTimestamp(v *time.Time) *optionalBuilder {
169+
p.value = value.NullableTzTimestampValueFromTime(v)
170170

171171
return &optionalBuilder{opt: p}
172172
}
173173

174-
func (p *optional) TzDatetime(v time.Time) *optionalBuilder {
175-
p.value = value.TzDatetimeValueFromTime(v)
174+
func (p *optional) TzDatetime(v *time.Time) *optionalBuilder {
175+
p.value = value.NullableTzDatetimeValueFromTime(v)
176176

177177
return &optionalBuilder{opt: p}
178178
}

0 commit comments

Comments
 (0)