nullable_appender.go 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. // DANGER! This code was autogenerated from template by clickhouse-go/lib/codegen/nullable_appender.
  2. // You shouldn't change it manually.
  3. // For more info check clickhouse-go/lib/codegen/nullable_appender/main.go
  4. package column
  5. import (
  6. "fmt"
  7. "net"
  8. "reflect"
  9. "time"
  10. )
  11. var nullableAppender = map[string]func(v interface{}, slice reflect.Value) (reflect.Value, error){
  12. "*int8": func(v interface{}, slice reflect.Value) (reflect.Value, error) {
  13. if v != nil {
  14. v, ok := v.(int8)
  15. if !ok {
  16. return slice, fmt.Errorf("cannot assert to type int8")
  17. }
  18. return reflect.Append(slice, reflect.ValueOf(&v)), nil
  19. }
  20. var vNil *int8
  21. return reflect.Append(slice, reflect.ValueOf(vNil)), nil
  22. },
  23. "*int16": func(v interface{}, slice reflect.Value) (reflect.Value, error) {
  24. if v != nil {
  25. v, ok := v.(int16)
  26. if !ok {
  27. return slice, fmt.Errorf("cannot assert to type int16")
  28. }
  29. return reflect.Append(slice, reflect.ValueOf(&v)), nil
  30. }
  31. var vNil *int16
  32. return reflect.Append(slice, reflect.ValueOf(vNil)), nil
  33. },
  34. "*int32": func(v interface{}, slice reflect.Value) (reflect.Value, error) {
  35. if v != nil {
  36. v, ok := v.(int32)
  37. if !ok {
  38. return slice, fmt.Errorf("cannot assert to type int32")
  39. }
  40. return reflect.Append(slice, reflect.ValueOf(&v)), nil
  41. }
  42. var vNil *int32
  43. return reflect.Append(slice, reflect.ValueOf(vNil)), nil
  44. },
  45. "*int64": func(v interface{}, slice reflect.Value) (reflect.Value, error) {
  46. if v != nil {
  47. v, ok := v.(int64)
  48. if !ok {
  49. return slice, fmt.Errorf("cannot assert to type int64")
  50. }
  51. return reflect.Append(slice, reflect.ValueOf(&v)), nil
  52. }
  53. var vNil *int64
  54. return reflect.Append(slice, reflect.ValueOf(vNil)), nil
  55. },
  56. "*uint8": func(v interface{}, slice reflect.Value) (reflect.Value, error) {
  57. if v != nil {
  58. v, ok := v.(uint8)
  59. if !ok {
  60. return slice, fmt.Errorf("cannot assert to type uint8")
  61. }
  62. return reflect.Append(slice, reflect.ValueOf(&v)), nil
  63. }
  64. var vNil *uint8
  65. return reflect.Append(slice, reflect.ValueOf(vNil)), nil
  66. },
  67. "*uint16": func(v interface{}, slice reflect.Value) (reflect.Value, error) {
  68. if v != nil {
  69. v, ok := v.(uint16)
  70. if !ok {
  71. return slice, fmt.Errorf("cannot assert to type uint16")
  72. }
  73. return reflect.Append(slice, reflect.ValueOf(&v)), nil
  74. }
  75. var vNil *uint16
  76. return reflect.Append(slice, reflect.ValueOf(vNil)), nil
  77. },
  78. "*uint32": func(v interface{}, slice reflect.Value) (reflect.Value, error) {
  79. if v != nil {
  80. v, ok := v.(uint32)
  81. if !ok {
  82. return slice, fmt.Errorf("cannot assert to type uint32")
  83. }
  84. return reflect.Append(slice, reflect.ValueOf(&v)), nil
  85. }
  86. var vNil *uint32
  87. return reflect.Append(slice, reflect.ValueOf(vNil)), nil
  88. },
  89. "*uint64": func(v interface{}, slice reflect.Value) (reflect.Value, error) {
  90. if v != nil {
  91. v, ok := v.(uint64)
  92. if !ok {
  93. return slice, fmt.Errorf("cannot assert to type uint64")
  94. }
  95. return reflect.Append(slice, reflect.ValueOf(&v)), nil
  96. }
  97. var vNil *uint64
  98. return reflect.Append(slice, reflect.ValueOf(vNil)), nil
  99. },
  100. "*float32": func(v interface{}, slice reflect.Value) (reflect.Value, error) {
  101. if v != nil {
  102. v, ok := v.(float32)
  103. if !ok {
  104. return slice, fmt.Errorf("cannot assert to type float32")
  105. }
  106. return reflect.Append(slice, reflect.ValueOf(&v)), nil
  107. }
  108. var vNil *float32
  109. return reflect.Append(slice, reflect.ValueOf(vNil)), nil
  110. },
  111. "*float64": func(v interface{}, slice reflect.Value) (reflect.Value, error) {
  112. if v != nil {
  113. v, ok := v.(float64)
  114. if !ok {
  115. return slice, fmt.Errorf("cannot assert to type float64")
  116. }
  117. return reflect.Append(slice, reflect.ValueOf(&v)), nil
  118. }
  119. var vNil *float64
  120. return reflect.Append(slice, reflect.ValueOf(vNil)), nil
  121. },
  122. "*string": func(v interface{}, slice reflect.Value) (reflect.Value, error) {
  123. if v != nil {
  124. v, ok := v.(string)
  125. if !ok {
  126. return slice, fmt.Errorf("cannot assert to type string")
  127. }
  128. return reflect.Append(slice, reflect.ValueOf(&v)), nil
  129. }
  130. var vNil *string
  131. return reflect.Append(slice, reflect.ValueOf(vNil)), nil
  132. },
  133. "*time.Time": func(v interface{}, slice reflect.Value) (reflect.Value, error) {
  134. if v != nil {
  135. v, ok := v.(time.Time)
  136. if !ok {
  137. return slice, fmt.Errorf("cannot assert to type time.Time")
  138. }
  139. return reflect.Append(slice, reflect.ValueOf(&v)), nil
  140. }
  141. var vNil *time.Time
  142. return reflect.Append(slice, reflect.ValueOf(vNil)), nil
  143. },
  144. "*net.IP": func(v interface{}, slice reflect.Value) (reflect.Value, error) {
  145. if v != nil {
  146. v, ok := v.(net.IP)
  147. if !ok {
  148. return slice, fmt.Errorf("cannot assert to type net.IP")
  149. }
  150. return reflect.Append(slice, reflect.ValueOf(&v)), nil
  151. }
  152. var vNil *net.IP
  153. return reflect.Append(slice, reflect.ValueOf(vNil)), nil
  154. },
  155. }