From 649875926694d46d1163eec5c8b862c8b1d47eaa Mon Sep 17 00:00:00 2001 From: Anel Husakovic Date: Thu, 5 Dec 2019 13:23:32 +0100 Subject: After review fix - Delete byte at the end of key/values - Add space after colon for keys and comma for values - Escaping character `'` should be ignored --- mysql-test/main/mysql_type_mysql_json.result | Bin 9218 -> 9175 bytes mysql-test/main/mysql_type_mysql_json_big.result | Bin 132410 -> 132408 bytes sql/mysql_json.cc | 15 ++++++--------- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/mysql-test/main/mysql_type_mysql_json.result b/mysql-test/main/mysql_type_mysql_json.result index 894aece18e9..d2af3194c92 100644 Binary files a/mysql-test/main/mysql_type_mysql_json.result and b/mysql-test/main/mysql_type_mysql_json.result differ diff --git a/mysql-test/main/mysql_type_mysql_json_big.result b/mysql-test/main/mysql_type_mysql_json_big.result index 9f5d07c603e..7761491f36f 100644 Binary files a/mysql-test/main/mysql_type_mysql_json_big.result and b/mysql-test/main/mysql_type_mysql_json_big.result differ diff --git a/sql/mysql_json.cc b/sql/mysql_json.cc index 3bb7f8dcfea..776135254cf 100644 --- a/sql/mysql_json.cc +++ b/sql/mysql_json.cc @@ -156,9 +156,6 @@ static bool append_string_json(String *buffer, const char *data, size_t len) case '\\': buffer->append("\\\\"); break; - case '\'': - buffer->append("\\'"); - break; case '\n': buffer->append("\\n"); break; @@ -306,7 +303,7 @@ static bool parse_mysql_scalar(String* buffer, size_t value_json_type, delete[] value_element; return true; } - if (append_string_json(buffer, value_element, value_length + 1)) + if (append_string_json(buffer, value_element, value_length)) { delete[] value_element; return true; @@ -400,7 +397,7 @@ static bool parse_mysql_scalar(String* buffer, size_t value_json_type, { if (buffer->append('"')) return true; - if (buffer->append("base64:type") || buffer->append(':')) + if (buffer->append("base64:type") || buffer->append(": ")) return true; size_t pos= buffer->length(); @@ -498,7 +495,7 @@ static bool parse_array_or_object(String *buffer, Field_mysql_json::enum_type t, delete[] key_element; return true; } - if (append_string_json(buffer, key_element, key_json_len + 1)) + if (append_string_json(buffer, key_element, key_json_len)) { delete[] key_element; return true; @@ -507,7 +504,7 @@ static bool parse_array_or_object(String *buffer, Field_mysql_json::enum_type t, if (buffer->append('"')) return true; - if (buffer->append(':')) + if (buffer->append(": ")) return true; value_type_offset= 2 * offset_size + @@ -538,7 +535,7 @@ static bool parse_array_or_object(String *buffer, Field_mysql_json::enum_type t, } if (!(i == (element_count - 1))) { - buffer->append(','); + buffer->append(", "); } } // end object @@ -571,7 +568,7 @@ static bool parse_array_or_object(String *buffer, Field_mysql_json::enum_type t, if(!(i==(element_count-1))) { - buffer->append(','); + buffer->append(", "); } } // end array } // end for -- cgit v1.2.1