diff options
author | Anel Husakovic <anel@mariadb.org> | 2019-12-05 13:23:32 +0100 |
---|---|---|
committer | Anel Husakovic <anel@mariadb.org> | 2019-12-05 13:23:36 +0100 |
commit | 649875926694d46d1163eec5c8b862c8b1d47eaa (patch) | |
tree | 13661234e88f6344ca997ab241bdd19b3cdc31e5 | |
parent | aeee0c211b1757f9b8158c7faae288b462f4aec2 (diff) | |
download | mariadb-git-bb-10.3-anel-MDEV-18323.tar.gz |
After review fixbb-10.3-anel-MDEV-18323
- Delete byte at the end of key/values
- Add space after colon for keys and comma for values
- Escaping character `'` should be ignored
-rw-r--r-- | mysql-test/main/mysql_type_mysql_json.result | bin | 9218 -> 9175 bytes | |||
-rw-r--r-- | mysql-test/main/mysql_type_mysql_json_big.result | bin | 132410 -> 132408 bytes | |||
-rw-r--r-- | 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 Binary files differindex 894aece18e9..d2af3194c92 100644 --- a/mysql-test/main/mysql_type_mysql_json.result +++ b/mysql-test/main/mysql_type_mysql_json.result diff --git a/mysql-test/main/mysql_type_mysql_json_big.result b/mysql-test/main/mysql_type_mysql_json_big.result Binary files differindex 9f5d07c603e..7761491f36f 100644 --- a/mysql-test/main/mysql_type_mysql_json_big.result +++ b/mysql-test/main/mysql_type_mysql_json_big.result 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 |