GORM Playground Link

Description

I find out that GORM cast byte arrays to strings, if ColumnTypeScanType returns sql.RawBytes. https://github.com/go-gorm/gorm/blob/0daaf1747cfa4e4850376ad50a7834fb78b0cc0e/scan.go#L44

This behaviour was introduced in 2020 and actually it's not clear why it do so.

I thing it's logical that if db value is sql.RawBytes, then it should return []byte, not string, because you can have arbitrary byte array there that during scanning should not change to other type.

go-sqlite return sql.RawBytes as type for BLOB which is https://www.sqlite.org/datatype3.html – The value is a blob of data, stored exactly as it was input.

But together with GORM if dest is map[string]interface{} we get string instead

Comment From: APshenkin

I'll not recommend anyone to open link that was posted by @afreisz . This looks like a phishing

Comment From: github-actions[bot]

The issue has been automatically marked as stale as it missing playground pull request link, which is important to help others understand your issue effectively and make sure the issue hasn't been fixed on latest master, checkout https://github.com/go-gorm/playground for details. it will be closed in 30 days if no further activity occurs. if you are asking question, please use the Question template, most likely your question already answered https://github.com/go-gorm/gorm/issues or described in the document https://gorm.io ✨ Search Before Asking