github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/internal/params/set.go (about) 1 package params 2 3 import ( 4 "time" 5 6 "github.com/google/uuid" 7 8 "github.com/ydb-platform/ydb-go-sdk/v3/internal/value" 9 ) 10 11 type ( 12 set struct { 13 parent Builder 14 name string 15 values []value.Value 16 } 17 18 setItem struct { 19 parent *set 20 } 21 ) 22 23 func (s *set) Add() *setItem { 24 return &setItem{ 25 parent: s, 26 } 27 } 28 29 func (s *set) AddItems(items ...value.Value) *set { 30 s.values = append(s.values, items...) 31 32 return s 33 } 34 35 func (s *set) EndSet() Builder { 36 s.parent.params = append(s.parent.params, &Parameter{ 37 parent: s.parent, 38 name: s.name, 39 value: value.SetValue(s.values...), 40 }) 41 42 return s.parent 43 } 44 45 func (s *setItem) Text(v string) *set { 46 s.parent.values = append(s.parent.values, value.TextValue(v)) 47 48 return s.parent 49 } 50 51 func (s *setItem) Bytes(v []byte) *set { 52 s.parent.values = append(s.parent.values, value.BytesValue(v)) 53 54 return s.parent 55 } 56 57 func (s *setItem) Bool(v bool) *set { 58 s.parent.values = append(s.parent.values, value.BoolValue(v)) 59 60 return s.parent 61 } 62 63 func (s *setItem) Uint64(v uint64) *set { 64 s.parent.values = append(s.parent.values, value.Uint64Value(v)) 65 66 return s.parent 67 } 68 69 func (s *setItem) Int64(v int64) *set { 70 s.parent.values = append(s.parent.values, value.Int64Value(v)) 71 72 return s.parent 73 } 74 75 func (s *setItem) Uint32(v uint32) *set { 76 s.parent.values = append(s.parent.values, value.Uint32Value(v)) 77 78 return s.parent 79 } 80 81 func (s *setItem) Int32(v int32) *set { 82 s.parent.values = append(s.parent.values, value.Int32Value(v)) 83 84 return s.parent 85 } 86 87 func (s *setItem) Uint16(v uint16) *set { 88 s.parent.values = append(s.parent.values, value.Uint16Value(v)) 89 90 return s.parent 91 } 92 93 func (s *setItem) Int16(v int16) *set { 94 s.parent.values = append(s.parent.values, value.Int16Value(v)) 95 96 return s.parent 97 } 98 99 func (s *setItem) Uint8(v uint8) *set { 100 s.parent.values = append(s.parent.values, value.Uint8Value(v)) 101 102 return s.parent 103 } 104 105 func (s *setItem) Int8(v int8) *set { 106 s.parent.values = append(s.parent.values, value.Int8Value(v)) 107 108 return s.parent 109 } 110 111 func (s *setItem) Float(v float32) *set { 112 s.parent.values = append(s.parent.values, value.FloatValue(v)) 113 114 return s.parent 115 } 116 117 func (s *setItem) Double(v float64) *set { 118 s.parent.values = append(s.parent.values, value.DoubleValue(v)) 119 120 return s.parent 121 } 122 123 func (s *setItem) Decimal(v [16]byte, precision, scale uint32) *set { 124 s.parent.values = append(s.parent.values, value.DecimalValue(v, precision, scale)) 125 126 return s.parent 127 } 128 129 func (s *setItem) Timestamp(v time.Time) *set { 130 s.parent.values = append(s.parent.values, value.TimestampValueFromTime(v)) 131 132 return s.parent 133 } 134 135 func (s *setItem) Date(v time.Time) *set { 136 s.parent.values = append(s.parent.values, value.DateValueFromTime(v)) 137 138 return s.parent 139 } 140 141 func (s *setItem) Datetime(v time.Time) *set { 142 s.parent.values = append(s.parent.values, value.DatetimeValueFromTime(v)) 143 144 return s.parent 145 } 146 147 func (s *setItem) Interval(v time.Duration) *set { 148 s.parent.values = append(s.parent.values, value.IntervalValueFromDuration(v)) 149 150 return s.parent 151 } 152 153 func (s *setItem) JSON(v string) *set { 154 s.parent.values = append(s.parent.values, value.JSONValue(v)) 155 156 return s.parent 157 } 158 159 func (s *setItem) JSONDocument(v string) *set { 160 s.parent.values = append(s.parent.values, value.JSONDocumentValue(v)) 161 162 return s.parent 163 } 164 165 func (s *setItem) YSON(v []byte) *set { 166 s.parent.values = append(s.parent.values, value.YSONValue(v)) 167 168 return s.parent 169 } 170 171 //// UUID has data corruption bug and will be removed in next version. 172 //// 173 //// Deprecated: Use Uuid (prefer) or UUIDWithIssue1501Value (for save old behavior) instead. 174 //// https://github.com/ydb-platform/ydb-go-sdk/issues/1501 175 //func (s *setItem) UUID(v [16]byte) *set { 176 // s.parent.values = append(s.parent.values, value.UUIDWithIssue1501Value(v)) 177 // 178 // return s.parent 179 //} 180 181 func (s *setItem) Uuid(v uuid.UUID) *set { //nolint:revive,stylecheck 182 s.parent.values = append(s.parent.values, value.Uuid(v)) 183 184 return s.parent 185 } 186 187 func (s *setItem) UUIDWithIssue1501Value(v [16]byte) *set { 188 s.parent.values = append(s.parent.values, value.UUIDWithIssue1501Value(v)) 189 190 return s.parent 191 } 192 193 func (s *setItem) TzDate(v time.Time) *set { 194 s.parent.values = append(s.parent.values, value.TzDateValueFromTime(v)) 195 196 return s.parent 197 } 198 199 func (s *setItem) TzTimestamp(v time.Time) *set { 200 s.parent.values = append(s.parent.values, value.TzTimestampValueFromTime(v)) 201 202 return s.parent 203 } 204 205 func (s *setItem) TzDatetime(v time.Time) *set { 206 s.parent.values = append(s.parent.values, value.TzDatetimeValueFromTime(v)) 207 208 return s.parent 209 }