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

Function convertValue

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

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 1

Tested by

no test coverage detected