diff options
author | Alexander Barkov <bar@mariadb.org> | 2016-09-17 08:24:05 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2017-04-05 15:02:48 +0400 |
commit | 30bec863cf710f9135439f410e1c31e4df873fd1 (patch) | |
tree | 6f78961390733bfadec431053e9f909eeb88e2b5 /sql/item_create.cc | |
parent | 7e7ba7cb948910e138922d6524cc125f9aa02848 (diff) | |
download | mariadb-git-30bec863cf710f9135439f410e1c31e4df873fd1.tar.gz |
MDEV-10342 Providing compatibility for basic SQL built-in functions
Adding functions NVL() and NVL2().
Diffstat (limited to 'sql/item_create.cc')
-rw-r--r-- | sql/item_create.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/sql/item_create.cc b/sql/item_create.cc index 455da1f5ba5..978459acf0e 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -711,6 +711,19 @@ protected: #endif +class Create_func_nvl2 : public Create_func_arg3 +{ +public: + virtual Item *create_3_arg(THD *thd, Item *arg1, Item *arg2, Item *arg3); + + static Create_func_nvl2 s_singleton; + +protected: + Create_func_nvl2() {} + virtual ~Create_func_nvl2() {} +}; + + class Create_func_conv : public Create_func_arg3 { public: @@ -3931,6 +3944,15 @@ Create_func_contains::create_2_arg(THD *thd, Item *arg1, Item *arg2) #endif +Create_func_nvl2 Create_func_nvl2::s_singleton; + +Item* +Create_func_nvl2::create_3_arg(THD *thd, Item *arg1, Item *arg2, Item *arg3) +{ + return new (thd->mem_root) Item_func_nvl2(thd, arg1, arg2, arg3); +} + + Create_func_conv Create_func_conv::s_singleton; Item* @@ -6884,6 +6906,8 @@ static Native_func_registry func_array[] = { { C_STRING_WITH_LEN("MULTIPOLYGONFROMTEXT") }, GEOM_BUILDER(Create_func_geometry_from_text)}, { { C_STRING_WITH_LEN("MULTIPOLYGONFROMWKB") }, GEOM_BUILDER(Create_func_geometry_from_wkb)}, { { C_STRING_WITH_LEN("NAME_CONST") }, BUILDER(Create_func_name_const)}, + { { C_STRING_WITH_LEN("NVL") }, BUILDER(Create_func_ifnull)}, + { { C_STRING_WITH_LEN("NVL2") }, BUILDER(Create_func_nvl2)}, { { C_STRING_WITH_LEN("NULLIF") }, BUILDER(Create_func_nullif)}, { { C_STRING_WITH_LEN("NUMGEOMETRIES") }, GEOM_BUILDER(Create_func_numgeometries)}, { { C_STRING_WITH_LEN("NUMINTERIORRINGS") }, GEOM_BUILDER(Create_func_numinteriorring)}, |