summaryrefslogtreecommitdiff
path: root/sql/item.h
diff options
context:
space:
mode:
authorserg@serg.mylan <>2004-11-22 21:33:15 +0100
committerserg@serg.mylan <>2004-11-22 21:33:15 +0100
commitee933cd1986fcbe14eb37cf732e92fe3692a7461 (patch)
tree9fd3b9eb87ff64ffe7e7374609beb327e419a87d /sql/item.h
parent55575bea2ed86b3f16297c6a0aa8540133aea963 (diff)
parent2ca5a0f2b17b02c13711d5f45ff75c52a23e4fb3 (diff)
downloadmariadb-git-ee933cd1986fcbe14eb37cf732e92fe3692a7461.tar.gz
merged
Diffstat (limited to 'sql/item.h')
-rw-r--r--sql/item.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/sql/item.h b/sql/item.h
index 9c036c28408..23515abc7a8 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -266,6 +266,14 @@ public:
virtual bool get_time(TIME *ltime);
virtual bool get_date_result(TIME *ltime,uint fuzzydate)
{ return get_date(ltime,fuzzydate); }
+ /*
+ This function is used only in Item_func_isnull/Item_func_isnotnull
+ (implementations of IS NULL/IS NOT NULL clauses). Item_func_is{not}null
+ calls this method instead of one of val/result*() methods, which
+ normally will set null_value. This allows to determine nullness of
+ a complex expression without fully evaluating it.
+ Any new item which can be NULL must implement this call.
+ */
virtual bool is_null() { return 0; }
/*
it is "top level" item of WHERE clause and we do not need correct NULL
@@ -710,6 +718,8 @@ public:
void print(String *str);
/* parameter never equal to other parameter of other item */
bool eq(const Item *item, bool binary_cmp) const { return 0; }
+ bool is_null()
+ { DBUG_ASSERT(state != NO_VALUE); return state == NULL_VALUE; }
};
class Item_int :public Item_num