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

Function convertValue

backend/plugin/db/tidb/query.go:38–87  ·  view source on GitHub ↗
(typeName string, columnType *sql.ColumnType, value any)

Source from the content-addressed store, hash-verified

36}
37
38func convertValue(typeName string, columnType *sql.ColumnType, value any) *v1pb.RowValue {
39 switch raw := value.(type) {
40 case *sql.NullString:
41 if raw.Valid {
42 _, scale, _ := columnType.DecimalSize()
43 if typeName == "TIMESTAMP" || typeName == "DATETIME" {
44 return util.BuildTimestampOrStringRowValue(raw.String, scale)
45 }
46 return &v1pb.RowValue{
47 Kind: &v1pb.RowValue_StringValue{
48 StringValue: raw.String,
49 },
50 }
51 }
52 case *sql.NullInt64:
53 if raw.Valid {
54 return &v1pb.RowValue{
55 Kind: &v1pb.RowValue_Int64Value{
56 Int64Value: raw.Int64,
57 },
58 }
59 }
60 case *[]byte:
61 if len(*raw) > 0 {
62 return &v1pb.RowValue{
63 Kind: &v1pb.RowValue_BytesValue{
64 BytesValue: *raw,
65 },
66 }
67 }
68 case *sql.NullBool:
69 if raw.Valid {
70 return &v1pb.RowValue{
71 Kind: &v1pb.RowValue_BoolValue{
72 BoolValue: raw.Bool,
73 },
74 }
75 }
76 case *sql.NullFloat64:
77 if raw.Valid {
78 return &v1pb.RowValue{
79 Kind: &v1pb.RowValue_DoubleValue{
80 DoubleValue: raw.Float64,
81 },
82 }
83 }
84 default:
85 }
86 return util.NullRowValue
87}
88
89func getStatementWithResultLimit(statement string, limit int) string {
90 stmt, err := getStatementWithResultLimitInline(statement, limit)

Callers

nothing calls this directly

Calls 1

Tested by

no test coverage detected