Fix for bug #23782: Stored procedures: crash if variable in procedure
analyse We have to call fix_fields() for procedure analyse' arguments as they may not be fixed in some circumstances. (as the crash appears when mysqld starts skipping binlog, a test case will be added when we can --skip-bin-log in -master.opt) sql/sql_analyse.cc: Fix for bug #23782: Stored procedures: crash if variable in procedure analyse - call fix_fields() if arguments are not fixed.
This commit is contained in:
parent
f27ea1b152
commit
07efbe8c2a
@ -87,6 +87,11 @@ proc_analyse_init(THD *thd, ORDER *param, select_result *result,
|
|||||||
else if (param->next)
|
else if (param->next)
|
||||||
{
|
{
|
||||||
// first parameter
|
// first parameter
|
||||||
|
if (!(*param->item)->fixed && (*param->item)->fix_fields(thd, param->item))
|
||||||
|
{
|
||||||
|
DBUG_PRINT("info", ("fix_fields() for the first parameter failed"));
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
if ((*param->item)->type() != Item::INT_ITEM ||
|
if ((*param->item)->type() != Item::INT_ITEM ||
|
||||||
(*param->item)->val_real() < 0)
|
(*param->item)->val_real() < 0)
|
||||||
{
|
{
|
||||||
@ -101,6 +106,11 @@ proc_analyse_init(THD *thd, ORDER *param, select_result *result,
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
// second parameter
|
// second parameter
|
||||||
|
if (!(*param->item)->fixed && (*param->item)->fix_fields(thd, param->item))
|
||||||
|
{
|
||||||
|
DBUG_PRINT("info", ("fix_fields() for the second parameter failed"));
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
if ((*param->item)->type() != Item::INT_ITEM ||
|
if ((*param->item)->type() != Item::INT_ITEM ||
|
||||||
(*param->item)->val_real() < 0)
|
(*param->item)->val_real() < 0)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user