summaryrefslogtreecommitdiff
path: root/sql/item_create.cc
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.org>2016-09-17 08:24:05 +0400
committerAlexander Barkov <bar@mariadb.org>2017-04-05 15:02:48 +0400
commit30bec863cf710f9135439f410e1c31e4df873fd1 (patch)
tree6f78961390733bfadec431053e9f909eeb88e2b5 /sql/item_create.cc
parent7e7ba7cb948910e138922d6524cc125f9aa02848 (diff)
downloadmariadb-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.cc24
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)},