Details
- 
    
Bug
 - 
    Status: Confirmed (View Workflow)
 - 
    
Major
 - 
    Resolution: Unresolved
 - 
    10.0.30, 10.1.21, 10.2.4, 10.0(EOL), 10.1(EOL), 10.2(EOL)
 - 
    None
 - 
    Windows and Linux. Latest 10.0, 10.1 and 10.2 versions.
 
Description
LOAD DATA INFILE with a binary blob fails when using UTF8 char sets. The result is additional escaped characters in the binary data when being accessed.
Test case - run against 10.0/1/2 of MariaDB. Injects binary blob that should only be escape processed for binary content and not treated as utf8; however MariaDB seems to be adding an extra escape to the binary contents - MySQL 5.6.35 is fine. The database and client connection are completely set up to use UTF8.
This might be related to MDEV-11079 - "Regression: LOAD DATA INFILE lost BLOB support using utf8 load files"
					$ echo -n -e '\xe2\x5c\x30\x0a' > input.bin
			 | 
		
					> select @@version;  | 
		
					+----------------+  | 
		
					| @@version      |
			 | 
		
					+----------------+  | 
		
					| 10.2.4-MariaDB |
			 | 
		
					+----------------+  | 
		
					> show variables like '%char%';  | 
		
					+--------------------------+-----------------------------------------------+  | 
		
					| Variable_name            | Value                                         |
			 | 
		
					+--------------------------+-----------------------------------------------+  | 
		
					| character_set_client     | utf8                                          |
			 | 
		
					| character_set_connection | utf8                                          |
			 | 
		
					| character_set_database   | utf8                                          |
			 | 
		
					| character_set_filesystem | binary |  | 
		
					| character_set_results    | utf8                                          |
			 | 
		
					| character_set_server     | utf8                                          |
			 | 
		
					| character_set_system     | utf8                                          |
			 | 
		
					| character_sets_dir       | C:\Program Files\MariaDB 10.2\share\charsets\ |
			 | 
		
					+--------------------------+-----------------------------------------------+  | 
		
					8 rows in set (0.00 sec)  | 
		
					> CREATE TABLE test ( binStuff mediumblob );  | 
		
| 
					 | 
		
					> load data local infile 'input.bin' replace into table test;  | 
		
					Query OK, 1 row affected (0.00 sec)
			 | 
		
					Records: 1  Deleted: 0  Skipped: 0  Warnings: 0
			 | 
		
| 
					 | 
		
					> select * into outfile 'output.bin' from test;  | 
		
					### Dump original input
			 | 
		
					$ hexdump -C input.bin
			 | 
		
					00000000  e2 5c 30 0a                                       |.\0.|
			 | 
		
					00000004
			 | 
		
| 
					 | 
		
					### MariadDB has added an extra back-slash (5c) - probably as a result of treating it as UTF8 rather than binary. 
			 | 
		
					$ hexdump -C output.bin
			 | 
		
					00000000  e2 5c 5c 30 0a                                    |.\\0.|
			 | 
		
					00000005
			 | 
		
Attachments
Issue Links
- relates to
 - 
                    
MDEV-11343 LOAD DATA INFILE fails to load data with an escape character followed by a multi-byte character
-         
 - Closed
 
 -         
 - 
                    
MDEV-11079 Regression: LOAD DATA INFILE lost BLOB support using utf8 load files
-         
 - Closed
 
 -         
 - 
                    
MDEV-13361 Regression: LOAD DATA INFILE utf8 enconding issues
-         
 - Closed
 
 -