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:
   
   
![image](https://github.com/apache/shardingsphere/assets/142789122/fc3b700d-ec0b-4a45-9f63-157cf6f67988)
   
   
   
   


-- 
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]

Reply via email to