mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
MDEV-25444 mysql --binary-mode is not able to replay some mysqlbinlog outputs
Problem:- Some binary data is inserted into the table using Jconnector. When binlog dump of the data is applied using mysql cleint it gives syntax error. Reason:- After investigating it turns out to be a issue of mysql client not able to properly handle \\\0 <0 in binary>. In all binary files where mysql client fails to insert these 2 bytes are commom (0x5c00) Solution:- I have changed mysql.cc to include for the possibility that binary string can have \\\0 in it
This commit is contained in:
committed by
Brandon Nesterenko
parent
1d57892949
commit
10cd281820
@@ -2319,8 +2319,12 @@ static bool add_line(String &buffer, char *line, size_t line_length,
|
||||
{
|
||||
// Found possbile one character command like \c
|
||||
|
||||
if (!(inchar = (uchar) *++pos))
|
||||
break; // readline adds one '\'
|
||||
inchar = (uchar) *++pos;
|
||||
// In Binary mode , when in_string is not null \0 should not be treated as
|
||||
// end statement. This can happen when we are in middle of binary data which
|
||||
// can contain \0 and its quoted with ' '.
|
||||
if (!real_binary_mode && !*in_string && !inchar)
|
||||
break; // readline adds one '\'
|
||||
if (*in_string || inchar == 'N') // \N is short for NULL
|
||||
{ // Don't allow commands in string
|
||||
*out++='\\';
|
||||
|
Reference in New Issue
Block a user