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  }