Commit c8966626 authored by unknown's avatar unknown

Fixed memory reference error when doing key_column <=> NULL on column that is defined as NOT NULL


BUILD/FINISH.sh:
  Abort if one of configuration script fails
parent 4cf749e6
...@@ -13,7 +13,11 @@ commands="\ ...@@ -13,7 +13,11 @@ commands="\
$make -k clean || true $make -k clean || true
/bin/rm -f */.deps/*.P config.cache innobase/config.cache bdb/build_unix/config.cache /bin/rm -f */.deps/*.P config.cache innobase/config.cache bdb/build_unix/config.cache
aclocal && autoheader && aclocal && automake && autoconf if [ ! aclocal ] ; then echo \"Can't execute aclocal\" ; exit 1; fi
if [ ! autoheader ] ; then echo \"Can't execute autoheader\" ; exit 1; fi
if [ ! aclocal ] ; then echo \"Can't execute aclocal\" ; exit 1; fi
if [ ! automake ] ; then echo \"Can't execute automake\" ; exit 1; fi
if [ ! autoconf ] ; then echo \"Can't execute autoconf\" ; exit 1; fi
(cd bdb/dist && sh s_all) (cd bdb/dist && sh s_all)
(cd innobase && aclocal && autoheader && aclocal && automake && autoconf) (cd innobase && aclocal && autoheader && aclocal && automake && autoconf)
if [ -d gemini ] if [ -d gemini ]
......
...@@ -505,10 +505,11 @@ SEL_ARG *SEL_ARG::last() ...@@ -505,10 +505,11 @@ SEL_ARG *SEL_ARG::last()
return next_arg; return next_arg;
} }
/* /*
Check if a compare is ok, when one takes ranges in account Check if a compare is ok, when one takes ranges in account
Returns -2 or 2 if the ranges where 'joined' like < 2 and >= 2 Returns -2 or 2 if the ranges where 'joined' like < 2 and >= 2
*/ */
static int sel_cmp(Field *field, char *a,char *b,uint8 a_flag,uint8 b_flag) static int sel_cmp(Field *field, char *a,char *b,uint8 a_flag,uint8 b_flag)
{ {
...@@ -1032,17 +1033,6 @@ get_mm_leaf(PARAM *param, Field *field, KEY_PART *key_part, ...@@ -1032,17 +1033,6 @@ get_mm_leaf(PARAM *param, Field *field, KEY_PART *key_part,
if (value->save_in_field(field, 1)) if (value->save_in_field(field, 1))
{ {
/* This happens when we try to insert a NULL field in a not null column */ /* This happens when we try to insert a NULL field in a not null column */
// TODO; Check if we can we remove the following block.
if (type == Item_func::EQUAL_FUNC)
{
/* convert column_name <=> NULL -> column_name IS NULL */
// Get local copy of key
char *str= (char*) alloc_root(param->mem_root,1);
if (!str)
DBUG_RETURN(0);
*str= 1;
DBUG_RETURN(new SEL_ARG(field,str,str));
}
DBUG_RETURN(&null_element); // cmp with NULL is never true DBUG_RETURN(&null_element); // cmp with NULL is never true
} }
// Get local copy of key // Get local copy of key
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment