1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-31 22:22:30 +03:00
Files
mariadb/sql
Jorgen Loland 40d72add32 BUG#11766317: FIND_IN_SET won't work normaly after upgrade
from 5.1 to 5.5

(Former 59405)

In this bug, args[0] in an Item_func_find_in_set stored an 
Item_func_weekday that was constant. In 
Item_func_find_in_set::fix_length_and_dec(), args[0]->val_str() 
was called. Later, when Item_func_find_in_set::val_int() was 
called, args[0]->null_value was checked. However, the 
Item_func_weekday in args[0] had now been replaced with an 
Item_cache. No val_*() calls had been made to this Item_cache,
thus null_value was incorrectly 'true', resulting in missing 
rows in the result set.

enum_value gets a value in fix_length_and_dec() iff args[0]
is both constant and non-null. It is therefore unnecessary 
to check the null_value of args[0] in val_int().

An alternative fix would be to call args[0]->val_int() inside 
Item_func_find_in_set::val_int(). This would ensure
args[0]->null_value was set correctly (always false in this case), 
but that would have to be done for every record this const value 
is checked against.
2011-03-04 15:46:17 +01:00
..
2010-08-16 14:50:27 +02:00
2010-11-22 10:13:46 +01:00
2010-12-29 01:26:31 +01:00
2010-05-24 14:51:59 +02:00
2010-05-28 19:53:26 -03:00
2010-03-31 16:05:33 +02:00
2010-07-30 16:56:57 +03:00
2010-12-29 01:26:31 +01:00
2011-01-28 13:28:15 +01:00
2010-12-14 13:46:00 +03:00
2011-03-03 18:46:30 +03:00
2011-03-03 18:46:30 +03:00
2011-02-02 10:18:44 +01:00
2011-02-02 10:18:44 +01:00
2011-02-08 14:59:03 +01:00
2010-03-31 16:05:33 +02:00
2011-02-08 17:47:33 +02:00
2010-12-07 16:11:13 +00:00
2010-12-29 01:26:31 +01:00
2010-12-29 01:26:31 +01:00
2010-11-23 13:47:35 +03:00
2010-12-07 16:11:13 +00:00
2010-12-29 01:26:31 +01:00
2010-04-13 19:04:45 +04:00
2011-01-24 11:48:54 +08:00
2010-12-07 16:11:13 +00:00
2010-09-06 17:04:32 +02:00
2010-11-28 18:06:02 +08:00
2010-10-12 14:07:13 +04:00
2011-02-02 20:13:28 +02:00
2011-01-31 13:11:05 +00:00
2011-01-26 15:30:06 +08:00
2011-02-10 11:50:53 +01:00
2011-03-03 11:25:37 +03:00
2011-01-28 13:28:15 +01:00
2010-12-02 08:16:26 +01:00
2010-12-29 01:26:31 +01:00
2010-12-14 13:46:00 +03:00
2010-12-07 16:11:13 +00:00
2010-12-07 16:11:13 +00:00
2011-02-18 11:55:24 +01:00
2010-12-29 01:26:31 +01:00
2010-08-12 20:44:41 +04:00
2009-09-10 03:18:29 -06:00
2011-02-17 12:53:09 +01:00
2011-02-17 12:53:09 +01:00
2011-01-28 13:28:15 +01:00
2010-12-29 01:26:31 +01:00
2009-12-03 21:37:38 +03:00