summaryrefslogtreecommitdiff
path: root/sql/field.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/field.cc')
-rw-r--r--sql/field.cc17
1 files changed, 5 insertions, 12 deletions
diff --git a/sql/field.cc b/sql/field.cc
index 7ff938b5d33..bd60483ac37 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -11194,6 +11194,8 @@ bool Field_mysql_json::parse_mysql(String *s, bool json_quoted,
const char *data= s->ptr();
size_t length= s->length();
+ // Empty the string
+ s->length(0);
if (length == 0)
{
//@todo anel will need to see how to handle this
@@ -11219,7 +11221,7 @@ bool Field_mysql_json::parse_mysql(String *s, bool json_quoted,
case JSONB_TYPE_SMALL_OBJECT:
{
large=false;
- parse_array_or_object(Field_mysql_json::enum_type::OBJECT, data1, len, large);
+ parse_array_or_object(s, Field_mysql_json::enum_type::OBJECT, data1, len, large);
break;
}
case JSONB_TYPE_LARGE_OBJECT:
@@ -11240,19 +11242,10 @@ bool Field_mysql_json::parse_mysql(String *s, bool json_quoted,
ASSERT_COLUMN_MARKED_FOR_READ;
String *buf1= Field_blob::val_str(buf1_tmp, buf2);
bool parsed= this->parse_mysql(buf1, true, field_name.str);
- if(parsed)
- buf1->append("Too");
+ if(parsed)
+ buf1->append("\nFinshed");
else
buf1->length(0);
- //buf1->set("",0,charset()); // A bit safer than buf1->length(0);
- //buf1->length(0);
-
- /*
- Json_wrapper wr;
- if (is_null() || val_json(&wr) || wr.to_string(buf1, true, field_name.str))
- buf1->length(0);
- return buf1;
- */
return buf1;
}