diff options
author | Sergei Golubchik <serg@mariadb.org> | 2019-05-17 17:23:01 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2019-05-17 17:23:01 +0200 |
commit | c1fd027115ce9a32bcbe42796f4df58309636705 (patch) | |
tree | 49ba501be560c1aa17dbf4c066652c7d3b1b876b /sql/item_create.cc | |
parent | e506bef430c3648f88469d42631136080db9f332 (diff) | |
parent | fae6539ef727b56bb5a58d4bbe515512e85ba2f4 (diff) | |
download | mariadb-git-c1fd027115ce9a32bcbe42796f4df58309636705.tar.gz |
Merge branch '10.2' into 10.3
Diffstat (limited to 'sql/item_create.cc')
-rw-r--r-- | sql/item_create.cc | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/sql/item_create.cc b/sql/item_create.cc index cdb9c4bf6bb..503165e69df 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -1982,6 +1982,19 @@ protected: }; +class Create_func_json_merge_patch : public Create_native_func +{ +public: + virtual Item *create_native(THD *thd, LEX_CSTRING *name, List<Item> *item_list); + + static Create_func_json_merge_patch s_singleton; + +protected: + Create_func_json_merge_patch() {} + virtual ~Create_func_json_merge_patch() {} +}; + + class Create_func_json_quote : public Create_func_arg1 { public: @@ -5514,6 +5527,30 @@ Create_func_json_merge::create_native(THD *thd, LEX_CSTRING *name, } +Create_func_json_merge_patch Create_func_json_merge_patch::s_singleton; + +Item* +Create_func_json_merge_patch::create_native(THD *thd, LEX_CSTRING *name, + List<Item> *item_list) +{ + Item *func; + int arg_count; + + if (item_list == NULL || + (arg_count= item_list->elements) < 2) // json, json + { + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name->str); + func= NULL; + } + else + { + func= new (thd->mem_root) Item_func_json_merge_patch(thd, *item_list); + } + + return func; +} + + Create_func_json_contains Create_func_json_contains::s_singleton; Item* @@ -7108,6 +7145,8 @@ static Native_func_registry func_array[] = { { STRING_WITH_LEN("JSON_LENGTH") }, BUILDER(Create_func_json_length)}, { { STRING_WITH_LEN("JSON_LOOSE") }, BUILDER(Create_func_json_loose)}, { { STRING_WITH_LEN("JSON_MERGE") }, BUILDER(Create_func_json_merge)}, + { { STRING_WITH_LEN("JSON_MERGE_PATCH") }, BUILDER(Create_func_json_merge_patch)}, + { { STRING_WITH_LEN("JSON_MERGE_PRESERVE") }, BUILDER(Create_func_json_merge)}, { { STRING_WITH_LEN("JSON_QUERY") }, BUILDER(Create_func_json_query)}, { { STRING_WITH_LEN("JSON_QUOTE") }, BUILDER(Create_func_json_quote)}, { { STRING_WITH_LEN("JSON_OBJECT") }, BUILDER(Create_func_json_object)}, |