Bug #96474 Incorrect blob handling
Submitted: 8 Aug 2019 14:06 Modified: 9 Aug 2019 7:24
Reporter: Marcio Reis Email Updates:
Status: Duplicate Impact on me:
Category:Connector for Node.js Severity:S1 (Critical)
Version: OS:Any
Assigned to: CPU Architecture:Any

[8 Aug 2019 14:06] Marcio Reis
When reading a blob column, it's content is returned as UTF8 string. 
When inserting a blob, only string data types are allowed, therefore, binary blobs cannot be inserted correctly.

How to repeat:
- Create a table with a standard blob column
- Insert a blob into your database (don't use the connector)
- Query the blob

Inserting a blob:
None of the methods below work. 

- (Example using streams) ...sql("INSERT INTO TABLE (BLOB_COL) VALUES (?)").bind([fs.createReadStream('./img.png')])
- (Example using memory buffer) ...sql("INSERT INTO TABLE (BLOB_COL) VALUES (?)").bind([fs.readFileSync('./img.png')])

Suggested fix:
- A Buffer should be returned for blobs
- We should be able to insert blobs using Buffers
- We should be able to insert blobs using streams
[9 Aug 2019 7:24] Rui Quelhas
Please do not submit the same bug more than once. An existing bug report already describes this very problem. Even if you feel that your issue is somewhat different, the resolution is likely
to be the same. Because of this, we hope you add your comments to the original bug instead.

Thank you for your interest in MySQL.
[9 Aug 2019 8:37] Rui Quelhas
As discussed in the MySQL community Slack, I'll be closing this as duplicate of both BUG#96478 and BUG#96480.