Browse Source

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.
pull/374/head
unknown 19 years ago
parent
commit
07efbe8c2a
  1. 10
      sql/sql_analyse.cc

10
sql/sql_analyse.cc

@ -87,6 +87,11 @@ proc_analyse_init(THD *thd, ORDER *param, select_result *result,
else if (param->next)
{
// 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 ||
(*param->item)->val_real() < 0)
{
@ -101,6 +106,11 @@ proc_analyse_init(THD *thd, ORDER *param, select_result *result,
goto err;
}
// 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 ||
(*param->item)->val_real() < 0)
{

Loading…
Cancel
Save