summaryrefslogtreecommitdiff
path: root/sql/item_create.cc
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2019-05-17 17:23:01 +0200
committerSergei Golubchik <serg@mariadb.org>2019-05-17 17:23:01 +0200
commitc1fd027115ce9a32bcbe42796f4df58309636705 (patch)
tree49ba501be560c1aa17dbf4c066652c7d3b1b876b /sql/item_create.cc
parente506bef430c3648f88469d42631136080db9f332 (diff)
parentfae6539ef727b56bb5a58d4bbe515512e85ba2f4 (diff)
downloadmariadb-git-c1fd027115ce9a32bcbe42796f4df58309636705.tar.gz
Merge branch '10.2' into 10.3
Diffstat (limited to 'sql/item_create.cc')
-rw-r--r--sql/item_create.cc39
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)},