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

MDEV-8624: MariaDB hangs on query with many logical condition

Made no_rows_in_result()/restore_to_before_no_rows_in_result() not looking
annecessary deep with walk() method.
This commit is contained in:
Oleksandr Byelkin
2015-09-24 17:25:52 +02:00
parent f804b74fd4
commit 02a38fd27e
3 changed files with 405 additions and 8 deletions

View File

@@ -377,17 +377,17 @@ public:
void no_rows_in_result()
{
bool_func_call_args info;
info.original_func_item= this;
info.bool_function= &Item::no_rows_in_result;
walk(&Item::call_bool_func_processor, FALSE, (uchar*) &info);
for (uint i= 0; i < arg_count; i++)
{
args[i]->no_rows_in_result();
}
}
void restore_to_before_no_rows_in_result()
{
bool_func_call_args info;
info.original_func_item= this;
info.bool_function= &Item::restore_to_before_no_rows_in_result;
walk(&Item::call_bool_func_processor, FALSE, (uchar*) &info);
for (uint i= 0; i < arg_count; i++)
{
args[i]->no_rows_in_result();
}
}
};