jiahuiss opened a new issue, #28217:
URL: https://github.com/apache/shardingsphere/issues/28217
version:
apache-shardingsphere-5.3.0-shardingsphere-proxy-bin
column type : mediumblob
```go
package main
import (
"encoding/hex"
"fmt"
"log"
"math/rand"
"strings"
"time"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func main() {
//shading table
db, err := createShardingDb("user_name", "pass_word", "host", "db",
3306)
if err != nil {
log.Fatalf("err:%v", err)
}
testWR(db, "message_audit")
//resource db shard table
db, err = createShardingDb("user_name", "pass_word", "host", "db", 3306)
if err != nil {
log.Fatalf("err:%v", err)
}
testWR(db, "message_audit_17")
}
func testWR(db *gorm.DB, tableName string) {
log.Println()
log.Println("$$$$--------------- ", tableName, " blobBytes
----------------- begin $$$$")
blobBytes := []byte{10, 51, 24, 1, 74, 8, 10, 154, 1, 24, 1, 74, 111}
log.Printf("blobBytes in: %v", blobBytes)
log.Printf("hex string in: %v",
strings.ToUpper(hex.EncodeToString(blobBytes)))
rand.Seed(time.Now().UnixMilli())
msgId := rand.Int63n(1000000000)
msgId = msgId/32*32 + 17 //落入message_audit_17
log.Printf("msg_id:%d", msgId)
messageAudit := &MessageAudit{
MsgId: msgId,
MsgPb: blobBytes,
TextList: "[]",
ImageList: "[]",
VideoList: "[]",
AudioList: "[]",
AuditResult: "{}",
}
err := db.Table(tableName).Create(messageAudit).Error
if err != nil {
log.Fatalf("Create err:%v", err)
}
queryRes := &MessageAudit{}
err = db.Table(tableName).Where("msg_id", msgId).Take(queryRes).Error
if err != nil {
log.Fatalf("err:%v", err)
}
log.Printf("blobBytes out: %v", []byte(queryRes.MsgPb))
log.Printf("hex string out: %v",
strings.ToUpper(hex.EncodeToString(queryRes.MsgPb)))
log.Println()
log.Println("$$$$--------------- ", tableName, " blobBytes
----------------- end $$$$")
}
func createShardingDb(user, passwd, host, database string, port int)
(*gorm.DB, error) {
dsn :=
fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&timeout=2000ms&readTimeout=2000ms&writeTimeout=2000ms&parseTime=true",
user, passwd, host, port, database)
engine, err := gorm.Open(mysql.New(mysql.Config{
DSN: dsn,
}), &gorm.Config{})
if err != nil {
return nil, err
}
return engine.Debug(), nil
}
type MessageAudit struct {
Id int64
`gorm:"column:id;type:bigint(20);primary_key;AUTO_INCREMENT" json:"id"`
MsgId int64
`gorm:"column:msg_id;type:bigint(20);default:0;NOT NULL" json:"msg_id"`
MsgType int `gorm:"column:msg_type;type:int(11);default:0;NOT
NULL" json:"msg_type"`
MsgProto int
`gorm:"column:msg_proto;type:int(11);default:0;NOT NULL" json:"msg_proto"`
MsgPb []byte `gorm:"column:msg_pb;type:mediumblob;"
json:"msg_pb"`
TextList string `gorm:"column:text_list;type:json;"
json:"text_list"`
ImageList string `gorm:"column:image_list;type:json;"
json:"image_list"`
VideoList string `gorm:"column:video_list;type:json;"
json:"video_list"`
AudioList string `gorm:"column:audio_list;type:json;"
json:"audio_list"`
FromUserId string `gorm:"column:from_user_id;type:varchar(32);;NOT
NULL" json:"from_user_id"`
UserName string `gorm:"column:user_name;type:varchar(50);NOT
NULL" json:"user_name"`
PortraitUrl string `gorm:"column:portrait_url;type:varchar(255);NOT
NULL" json:"portrait_url"`
GroupOnwerId string `gorm:"column:group_onwer_id;type:varchar(32);NOT
NULL" json:"group_onwer_id"`
GroupOwnerName string
`gorm:"column:group_owner_name;type:varchar(50);NOT NULL"
json:"group_owner_name"`
ConvId string `gorm:"column:conv_id;type:varchar(50);NOT NULL"
json:"conv_id"`
AuditStatus int
`gorm:"column:audit_status;type:tinyint(4);default:0;NOT NULL"
json:"audit_status"`
Region string `gorm:"column:region;type:varchar(5);;NOT NULL"
json:"region"`
TargetUids string `gorm:"column:target_uids;type:varchar(3200);;NOT
NULL" json:"target_uids"`
AuditResult string `gorm:"column:audit_result;type:json;"
json:"audit_result"`
CreatedAt int64
`gorm:"autoCreateTime:milli;column:created_at;type:bigint(20);NOT NULL"
json:"created_at"`
UpdatedAt int64
`gorm:"autoUpdateTime:milli;column:updated_at;type:bigint(20);;NOT NULL"
json:"updated_at"`
}
func (m *MessageAudit) TableName() string {
return "message_audit"
}
```
output:

--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail:
[email protected]
For queries about this service, please contact Infrastructure at:
[email protected]