diff --git a/database/sampling.go b/database/sampling.go index 46bfdef90ea4a32ed8f40d03bc96197a84fdf0f9..896c264c68356dba88266b38d584ecbc757b53e7 100644 --- a/database/sampling.go +++ b/database/sampling.go @@ -137,6 +137,9 @@ func (db *Connector) startSampling(onlineConn *sql.DB, database, table string, w values = append(values, "NULL") } else { switch columnTypes[i].DatabaseTypeName() { + case "JSON": + // https://github.com/XiaoMi/soar/issues/178 + values = append(values, fmt.Sprintf(`convert(X'%s' using utf8mb4)`, fmt.Sprintf("%x", val))) case "TIMESTAMP", "DATETIME": t, err := time.Parse(time.RFC3339, string(val)) if err != nil {