MCPcopy Create free account
hub / github.com/bytebase/bytebase / toV1pbRowVal

Function toV1pbRowVal

backend/plugin/db/databricks/databricks.go:207–266  ·  view source on GitHub ↗
(colType dbsql.ColumnInfoTypeName, val string)

Source from the content-addressed store, hash-verified

205}
206
207func toV1pbRowVal(colType dbsql.ColumnInfoTypeName, val string) (*v1pb.RowValue, error) {
208 rowVal := v1pb.RowValue{}
209 if val == "" && colType != dbsql.ColumnInfoTypeNameString {
210 rowVal.Kind = &v1pb.RowValue_NullValue{}
211 return &rowVal, nil
212 }
213
214 switch colType {
215 case dbsql.ColumnInfoTypeNameBoolean:
216 boolVal, err := strconv.ParseBool(val)
217 if err != nil {
218 return nil, err
219 }
220 rowVal.Kind = &v1pb.RowValue_BoolValue{BoolValue: boolVal}
221
222 case dbsql.ColumnInfoTypeNameBinary:
223 rowVal.Kind = &v1pb.RowValue_BytesValue{BytesValue: []byte(val)}
224
225 case dbsql.ColumnInfoTypeNameShort:
226 shortVal, err := strconv.ParseInt(val, 10, 16)
227 if err != nil {
228 return nil, err
229 }
230 rowVal.Kind = &v1pb.RowValue_Int32Value{Int32Value: int32(shortVal)}
231
232 case dbsql.ColumnInfoTypeNameInt:
233 i32Val, err := strconv.ParseInt(val, 10, 32)
234 if err != nil {
235 return nil, err
236 }
237 rowVal.Kind = &v1pb.RowValue_Int32Value{Int32Value: int32(i32Val)}
238
239 case dbsql.ColumnInfoTypeNameLong:
240 i64Val, err := strconv.ParseInt(val, 10, 64)
241 if err != nil {
242 return nil, err
243 }
244 rowVal.Kind = &v1pb.RowValue_Int64Value{Int64Value: i64Val}
245
246 case dbsql.ColumnInfoTypeNameFloat:
247 floatVal, err := strconv.ParseFloat(val, 32)
248 if err != nil {
249 return nil, err
250 }
251 rowVal.Kind = &v1pb.RowValue_FloatValue{FloatValue: float32(floatVal)}
252
253 case dbsql.ColumnInfoTypeNameDouble:
254 doubleVal, err := strconv.ParseFloat(val, 64)
255 if err != nil {
256 return nil, err
257 }
258 rowVal.Kind = &v1pb.RowValue_DoubleValue{DoubleValue: doubleVal}
259
260 default:
261 // convert all remaining types to string.
262 rowVal.Kind = &v1pb.RowValue_StringValue{StringValue: val}
263 }
264

Callers 1

QueryConnMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected