mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
MDEV-18553: MDEV-16327 pre-requisits part 1: isolation of LIMIT/OFFSET handling
This commit is contained in:
@ -3016,11 +3016,8 @@ int select_send::send_data(List<Item> &items)
|
||||
DBUG_ENTER("select_send::send_data");
|
||||
|
||||
/* unit is not set when using 'delete ... returning' */
|
||||
if (unit && unit->offset_limit_cnt)
|
||||
{ // using limit offset,count
|
||||
unit->offset_limit_cnt--;
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
if (unit && unit->lim.check_and_move_offset())
|
||||
DBUG_RETURN(FALSE); // using limit offset,count
|
||||
if (thd->killed == ABORT_QUERY)
|
||||
DBUG_RETURN(FALSE);
|
||||
|
||||
@ -3285,11 +3282,8 @@ int select_export::send_data(List<Item> &items)
|
||||
String tmp(buff,sizeof(buff),&my_charset_bin),*res;
|
||||
tmp.length(0);
|
||||
|
||||
if (unit->offset_limit_cnt)
|
||||
{ // using limit offset,count
|
||||
unit->offset_limit_cnt--;
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
if (unit->lim.check_and_move_offset())
|
||||
DBUG_RETURN(0); // using limit offset,count
|
||||
if (thd->killed == ABORT_QUERY)
|
||||
DBUG_RETURN(0);
|
||||
row_count++;
|
||||
@ -3545,11 +3539,8 @@ int select_dump::send_data(List<Item> &items)
|
||||
Item *item;
|
||||
DBUG_ENTER("select_dump::send_data");
|
||||
|
||||
if (unit->offset_limit_cnt)
|
||||
{ // using limit offset,count
|
||||
unit->offset_limit_cnt--;
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
if (unit->lim.check_and_move_offset())
|
||||
DBUG_RETURN(0); // using limit offset,count
|
||||
if (thd->killed == ABORT_QUERY)
|
||||
DBUG_RETURN(0);
|
||||
|
||||
@ -3588,11 +3579,8 @@ int select_singlerow_subselect::send_data(List<Item> &items)
|
||||
MYF(current_thd->lex->ignore ? ME_WARNING : 0));
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
if (unit->offset_limit_cnt)
|
||||
{ // Using limit offset,count
|
||||
unit->offset_limit_cnt--;
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
if (unit->lim.check_and_move_offset())
|
||||
DBUG_RETURN(0); // Using limit offset,count
|
||||
if (thd->killed == ABORT_QUERY)
|
||||
DBUG_RETURN(0);
|
||||
List_iterator_fast<Item> li(items);
|
||||
@ -3729,11 +3717,8 @@ int select_exists_subselect::send_data(List<Item> &items)
|
||||
{
|
||||
DBUG_ENTER("select_exists_subselect::send_data");
|
||||
Item_exists_subselect *it= (Item_exists_subselect *)item;
|
||||
if (unit->offset_limit_cnt)
|
||||
{ // Using limit offset,count
|
||||
unit->offset_limit_cnt--;
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
if (unit->lim.check_and_move_offset())
|
||||
DBUG_RETURN(0); // Using limit offset,count
|
||||
if (thd->killed == ABORT_QUERY)
|
||||
DBUG_RETURN(0);
|
||||
it->value= 1;
|
||||
@ -4138,12 +4123,9 @@ int select_dumpvar::send_data(List<Item> &items)
|
||||
{
|
||||
DBUG_ENTER("select_dumpvar::send_data");
|
||||
|
||||
if (unit->offset_limit_cnt)
|
||||
{ // using limit offset,count
|
||||
unit->offset_limit_cnt--;
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
if (row_count++)
|
||||
if (unit->lim.check_and_move_offset())
|
||||
DBUG_RETURN(0); // using limit offset,count
|
||||
if (row_count++)
|
||||
{
|
||||
my_message(ER_TOO_MANY_ROWS, ER_THD(thd, ER_TOO_MANY_ROWS), MYF(0));
|
||||
DBUG_RETURN(1);
|
||||
|
Reference in New Issue
Block a user