diff --git a/sql/sql_analyse.cc b/sql/sql_analyse.cc index 5d7d35cf69b37627a50d9f83a15887b1073fd0c3..95a7fb3d34d0d71a90f6790ea0e6e485fb1908c2 100644 --- a/sql/sql_analyse.cc +++ b/sql/sql_analyse.cc @@ -86,6 +86,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) { @@ -100,6 +105,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) {