From f16dfb9d360b1aff79514f1d6cd4b553781f14c0 Mon Sep 17 00:00:00 2001 From: "ram@gw.mysql.r18.ru" <> Date: Mon, 2 Feb 2004 19:32:49 +0400 Subject: [PATCH] Added a comment for NULL range creation. --- sql/opt_range.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 9f56064cfb1..2ebc60ca711 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -2516,6 +2516,12 @@ QUICK_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table, TABLE_REF *ref) if (quick->ranges.push_back(range)) goto err; + /* + Add a NULL range if REF_OR_NULL optimization is used. + For example: + if we have "WHERE A=2 OR A IS NULL" we created the (A=2) range above + and have ref->null_ref_key set. Will create a new NULL range here. + */ if (ref->null_ref_key) { QUICK_RANGE *null_range; @@ -2526,7 +2532,6 @@ QUICK_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table, TABLE_REF *ref) EQ_RANGE))) goto err; *ref->null_ref_key= 0; // Clear null byte - /* Do we need to do something with key_parts here? Looks like we don't */ if (quick->ranges.push_back(null_range)) goto err; }