Bug : 'select 1 regex null' asserts debug server

The special case with NULL as a regular expression
was handled at prepare time. But in this special case
the item was not marked as fixed. This caused an assertion
at execution time.
Fixed my marking the item as fixed even when known to 
return NULL at prepare time.


mysql-test/r/func_regexp.result:
  Bug : test case
mysql-test/t/func_regexp.test:
  Bug : test case
sql/item_cmpfunc.cc:
  Bug : mark the item as fixed even when 
  known to return NULL.
This commit is contained in:
unknown 2007-10-11 11:29:26 +03:00
parent 6146c0c75d
commit 76af571717
3 changed files with 16 additions and 1 deletions

View file

@ -98,3 +98,8 @@ R2
R3
deallocate prepare stmt1;
drop table t1;
End of 4.1 tests
SELECT 1 REGEXP NULL;
1 REGEXP NULL
NULL
End of 5.0 tests

View file

@ -74,4 +74,13 @@ execute stmt1 using @a;
deallocate prepare stmt1;
drop table t1;
# End of 4.1 tests
--echo End of 4.1 tests
#
# Bug #31440: 'select 1 regex null' asserts debug server
#
SELECT 1 REGEXP NULL;
--echo End of 5.0 tests

View file

@ -4285,6 +4285,7 @@ Item_func_regex::fix_fields(THD *thd, Item **ref)
if (args[1]->null_value)
{ // Will always return NULL
maybe_null=1;
fixed= 1;
return FALSE;
}
int error;