1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

fixed bug of PROCEDURE in same query with subselects

prohibited using procedure inside subquery
fixed error handling of procedure analize


mysql-test/r/subselect.result:
  test of PROCEDURE in subselect
  test of PROCEDURE of subselect
mysql-test/t/subselect.test:
  test of PROCEDURE in subselect
  test of PROCEDURE of subselect
sql/sql_analyse.cc:
  fixed error handling in procedure analize
sql/sql_parse.cc:
  fixed bug of PROCEDURE in same query with subselects
sql/sql_yacc.yy:
  prohibited using procedure inside subquery
This commit is contained in:
unknown
2002-12-06 00:40:28 +02:00
parent ef4f5b2148
commit f67abe26fb
5 changed files with 26 additions and 7 deletions

View File

@@ -89,21 +89,21 @@ proc_analyse_init(THD *thd, ORDER *param, select_result *result,
if ((*param->item)->type() != Item::INT_ITEM ||
(*param->item)->val() < 0)
{
net_printf(thd, ER_WRONG_PARAMETERS_TO_PROCEDURE, proc_name);
my_error(ER_WRONG_PARAMETERS_TO_PROCEDURE, MYF(0), proc_name);
DBUG_RETURN(0);
}
pc->max_tree_elements = (uint) (*param->item)->val_int();
param = param->next;
if (param->next) // no third parameter possible
{
net_printf(thd, ER_WRONG_PARAMCOUNT_TO_PROCEDURE, proc_name);
my_error(ER_WRONG_PARAMCOUNT_TO_PROCEDURE, MYF(0), proc_name);
DBUG_RETURN(0);
}
// second parameter
if ((*param->item)->type() != Item::INT_ITEM ||
(*param->item)->val() < 0)
{
net_printf(thd, ER_WRONG_PARAMETERS_TO_PROCEDURE, proc_name);
my_error(ER_WRONG_PARAMETERS_TO_PROCEDURE, MYF(0), proc_name);
DBUG_RETURN(0);
}
pc->max_treemem = (uint) (*param->item)->val_int();
@@ -111,7 +111,7 @@ proc_analyse_init(THD *thd, ORDER *param, select_result *result,
else if ((*param->item)->type() != Item::INT_ITEM ||
(*param->item)->val() < 0)
{
net_printf(thd, ER_WRONG_PARAMETERS_TO_PROCEDURE, proc_name);
my_error(ER_WRONG_PARAMETERS_TO_PROCEDURE, MYF(0), proc_name);
DBUG_RETURN(0);
}
// if only one parameter was given, it will be the value of max_tree_elements