diff options
author | Sergei Krivonos <sergei.krivonos@mariadb.com> | 2021-11-09 20:06:22 +0200 |
---|---|---|
committer | Sergei Krivonos <sergei.krivonos@mariadb.com> | 2021-11-10 20:53:24 +0200 |
commit | 94ef277b5b98afb25400fdb1b3b4917ef16172da (patch) | |
tree | 3c3745590428068f3ae81b6fae11a7cfb17cbb22 /sql | |
parent | 04ad98b5001eafea537d3c655d0021ffb2f5ef06 (diff) | |
download | mariadb-git-94ef277b5b98afb25400fdb1b3b4917ef16172da.tar.gz |
MDEV-23766: fix by assert (Windows)
Diffstat (limited to 'sql')
-rw-r--r-- | sql/my_json_writer.h | 20 | ||||
-rw-r--r-- | sql/opt_range.cc | 7 |
2 files changed, 13 insertions, 14 deletions
diff --git a/sql/my_json_writer.h b/sql/my_json_writer.h index c8bd7f5b8fa..7d209501a87 100644 --- a/sql/my_json_writer.h +++ b/sql/my_json_writer.h @@ -24,7 +24,7 @@ #ifdef JSON_WRITER_UNIT_TEST #include "sql_string.h" // Also, mock objects are defined in my_json_writer-t.cc -#define VALIDITY_ASSERT(x) if ((!x)) this->invalid_json= true; +#define VALIDITY_ASSERT(x) if (!(x)) this->invalid_json= true; #else #include "sql_select.h" #define VALIDITY_ASSERT(x) DBUG_ASSERT(x) @@ -356,6 +356,9 @@ public: /* A common base for Json_writer_object and Json_writer_array */ class Json_writer_struct { + Json_writer_struct(const Json_writer_struct&)= delete; + Json_writer_struct& operator=(const Json_writer_struct&)= delete; + protected: Json_writer* my_writer; Json_value_helper context; @@ -394,18 +397,15 @@ private: my_writer->add_member(name); } public: - explicit Json_writer_object(THD *thd) - : Json_writer_struct(thd) - { - if (unlikely(my_writer)) - my_writer->start_object(); - } - - explicit Json_writer_object(THD* thd, const char *str) + explicit Json_writer_object(THD* thd, const char *str= nullptr) : Json_writer_struct(thd) { if (unlikely(my_writer)) - my_writer->add_member(str).start_object(); + { + if (str) + my_writer->add_member(str); + my_writer->start_object(); + } } ~Json_writer_object() diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 122b00f4d57..47bf8f1682f 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -5101,9 +5101,8 @@ TABLE_READ_PLAN *get_best_disjunct_quick(PARAM *param, SEL_IMERGE *imerge, n_child_scans))) DBUG_RETURN(NULL); - Json_writer_object trace_best_disjunct = named_trace - ? Json_writer_object(thd, "best_disjunct_quick") - : Json_writer_object(thd); + const char* trace_best_disjunct_obj_name= named_trace ? "best_disjunct_quick" : nullptr; + Json_writer_object trace_best_disjunct(thd, trace_best_disjunct_obj_name); Json_writer_array to_merge(thd, "indexes_to_merge"); /* Collect best 'range' scan for each of disjuncts, and, while doing so, @@ -5649,7 +5648,7 @@ void print_keyparts(THD *thd, KEY *key, uint key_parts) DBUG_ASSERT(thd->trace_started()); KEY_PART_INFO *part= key->key_part; - Json_writer_array keyparts= Json_writer_array(thd, "keyparts"); + Json_writer_array keyparts(thd, "keyparts"); for(uint i= 0; i < key_parts; i++, part++) keyparts.add(part->field->field_name); } |