mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
fixed cyclic reference bug
mysql-test/r/subselect.result: test of cyclic reference mysql-test/t/subselect.test: test of cyclic reference sql/share/czech/errmsg.txt: new error message sql/share/danish/errmsg.txt: new error message sql/share/dutch/errmsg.txt: new error message sql/share/english/errmsg.txt: new error message sql/share/estonian/errmsg.txt: new error message sql/share/french/errmsg.txt: new error message sql/share/german/errmsg.txt: new error message sql/share/greek/errmsg.txt: new error message sql/share/hungarian/errmsg.txt: new error message sql/share/italian/errmsg.txt: new error message sql/share/japanese/errmsg.txt: new error message sql/share/korean/errmsg.txt: new error message sql/share/norwegian-ny/errmsg.txt: new error message sql/share/norwegian/errmsg.txt: new error message sql/share/polish/errmsg.txt: new error message sql/share/portuguese/errmsg.txt: new error message sql/share/romanian/errmsg.txt: new error message sql/share/russian/errmsg.txt: new error message sql/share/serbian/errmsg.txt: new error message sql/share/slovak/errmsg.txt: new error message sql/share/spanish/errmsg.txt: new error message sql/share/swedish/errmsg.txt: new error message sql/share/ukrainian/errmsg.txt: new error message
This commit is contained in:
@ -344,6 +344,14 @@ void Item_func_interval::update_used_tables()
|
||||
const_item_cache&=item->const_item();
|
||||
}
|
||||
|
||||
bool Item_func_interval::check_loop(uint id)
|
||||
{
|
||||
DBUG_ENTER("Item_func_interval::check_loop");
|
||||
if (Item_func::check_loop(id))
|
||||
DBUG_RETURN(1);
|
||||
DBUG_RETURN(item->check_loop(id));
|
||||
}
|
||||
|
||||
void Item_func_between::fix_length_and_dec()
|
||||
{
|
||||
max_length=1;
|
||||
@ -776,6 +784,16 @@ Item_func_case::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref)
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool Item_func_case::check_loop(uint id)
|
||||
{
|
||||
DBUG_ENTER("Item_func_case::check_loop");
|
||||
if (Item_func::check_loop(id))
|
||||
DBUG_RETURN(1);
|
||||
|
||||
DBUG_RETURN((first_expr && first_expr->check_loop(id)) ||
|
||||
(else_expr && else_expr->check_loop(id)));
|
||||
}
|
||||
|
||||
void Item_func_case::update_used_tables()
|
||||
{
|
||||
Item_func::update_used_tables();
|
||||
@ -1137,6 +1155,20 @@ Item_cond::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref)
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool Item_cond::check_loop(uint id)
|
||||
{
|
||||
DBUG_ENTER("Item_cond::check_loop");
|
||||
if (Item_func::check_loop(id))
|
||||
DBUG_RETURN(1);
|
||||
List_iterator<Item> li(list);
|
||||
Item *item;
|
||||
while ((item= li++))
|
||||
{
|
||||
if (item->check_loop(id))
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
void Item_cond::split_sum_func(List<Item> &fields)
|
||||
{
|
||||
|
Reference in New Issue
Block a user