mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
errors without code removed
net_printf/send_error calls replaced by my_error family functions -1/1 (sent/unsent) error reporting removed (WL#2133)
This commit is contained in:
@@ -24,21 +24,20 @@
|
||||
#include "mysql_priv.h"
|
||||
#include "sql_select.h"
|
||||
|
||||
int mysql_union(THD *thd, LEX *lex, select_result *result,
|
||||
SELECT_LEX_UNIT *unit)
|
||||
bool mysql_union(THD *thd, LEX *lex, select_result *result,
|
||||
SELECT_LEX_UNIT *unit)
|
||||
{
|
||||
DBUG_ENTER("mysql_union");
|
||||
int res, res_cln;
|
||||
bool res;
|
||||
if (!(res= unit->prepare(thd, result, SELECT_NO_UNLOCK)))
|
||||
res= unit->exec();
|
||||
if (res == 0 && thd->cursor && thd->cursor->is_open())
|
||||
if (!res && thd->cursor && thd->cursor->is_open())
|
||||
{
|
||||
thd->cursor->set_unit(unit);
|
||||
res_cln= 0;
|
||||
}
|
||||
else
|
||||
res_cln= unit->cleanup();
|
||||
DBUG_RETURN(res?res:res_cln);
|
||||
res|= unit->cleanup();
|
||||
DBUG_RETURN(res);
|
||||
}
|
||||
|
||||
|
||||
@@ -104,8 +103,7 @@ bool select_union::flush()
|
||||
int error;
|
||||
if ((error=table->file->extra(HA_EXTRA_NO_CACHE)))
|
||||
{
|
||||
table->file->print_error(error,MYF(0));
|
||||
::send_error(thd);
|
||||
table->file->print_error(error, MYF(0));
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
@@ -147,8 +145,8 @@ st_select_lex_unit::init_prepare_fake_select_lex(THD *thd)
|
||||
}
|
||||
|
||||
|
||||
int st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result,
|
||||
ulong additional_options)
|
||||
bool st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result,
|
||||
ulong additional_options)
|
||||
{
|
||||
SELECT_LEX *lex_select_save= thd_arg->lex->current_select;
|
||||
SELECT_LEX *sl, *first_select;
|
||||
@@ -176,16 +174,16 @@ int st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result,
|
||||
if (!sl->join->procedure &&
|
||||
result->prepare(sl->join->fields_list, this))
|
||||
{
|
||||
DBUG_RETURN(1);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
sl->join->select_options|= SELECT_DESCRIBE;
|
||||
sl->join->reinit();
|
||||
}
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
prepared= 1;
|
||||
res= 0;
|
||||
res= FALSE;
|
||||
|
||||
thd_arg->lex->current_select= sl= first_select= first_select_in_union();
|
||||
found_rows_for_union= first_select->options & OPTION_FOUND_ROWS;
|
||||
@@ -232,7 +230,7 @@ int st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result,
|
||||
sl->having,
|
||||
(ORDER*) NULL,
|
||||
sl, this);
|
||||
if (res || thd_arg->is_fatal_error)
|
||||
if ((res= (res || thd_arg->is_fatal_error)))
|
||||
goto err;
|
||||
if (sl == first_select)
|
||||
{
|
||||
@@ -262,7 +260,7 @@ int st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result,
|
||||
while ((type= tp++, item_tmp= it++))
|
||||
{
|
||||
if (((Item_type_holder*)type)->join_types(thd_arg, item_tmp))
|
||||
DBUG_RETURN(-1);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -305,7 +303,7 @@ int st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result,
|
||||
{
|
||||
if (arena)
|
||||
thd->restore_backup_item_arena(arena, &backup);
|
||||
DBUG_RETURN(-1);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
}
|
||||
if (arena)
|
||||
@@ -323,7 +321,7 @@ int st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result,
|
||||
result)))
|
||||
{
|
||||
fake_select_lex->table_list.empty();
|
||||
DBUG_RETURN(-1);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
fake_select_lex->item_list= item_list;
|
||||
|
||||
@@ -345,15 +343,15 @@ int st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result,
|
||||
|
||||
thd_arg->lex->current_select= lex_select_save;
|
||||
|
||||
DBUG_RETURN(res || thd_arg->is_fatal_error ? 1 : 0);
|
||||
DBUG_RETURN(res || thd_arg->is_fatal_error);
|
||||
|
||||
err:
|
||||
thd_arg->lex->current_select= lex_select_save;
|
||||
DBUG_RETURN(-1);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
|
||||
|
||||
int st_select_lex_unit::exec()
|
||||
bool st_select_lex_unit::exec()
|
||||
{
|
||||
SELECT_LEX *lex_select_save= thd->lex->current_select;
|
||||
SELECT_LEX *select_cursor=first_select_in_union();
|
||||
@@ -361,7 +359,7 @@ int st_select_lex_unit::exec()
|
||||
DBUG_ENTER("st_select_lex_unit::exec");
|
||||
|
||||
if (executed && !uncacheable && !describe)
|
||||
DBUG_RETURN(0);
|
||||
DBUG_RETURN(FALSE);
|
||||
executed= 1;
|
||||
|
||||
if (uncacheable || !item || !item->assigned() || describe)
|
||||
@@ -376,7 +374,7 @@ int st_select_lex_unit::exec()
|
||||
}
|
||||
/* re-enabling indexes for next subselect iteration */
|
||||
if (union_distinct && table->file->enable_indexes(HA_KEY_SWITCH_ALL))
|
||||
DBUG_ASSERT(1);
|
||||
DBUG_ASSERT(TRUE);
|
||||
}
|
||||
for (SELECT_LEX *sl= select_cursor; sl; sl= sl->next_select())
|
||||
{
|
||||
@@ -431,7 +429,7 @@ int st_select_lex_unit::exec()
|
||||
if (sl == union_distinct)
|
||||
{
|
||||
if (table->file->disable_indexes(HA_KEY_SWITCH_ALL))
|
||||
DBUG_RETURN(1);
|
||||
DBUG_RETURN(TRUE);
|
||||
table->no_keyread=1;
|
||||
}
|
||||
res= sl->join->error;
|
||||
@@ -439,7 +437,7 @@ int st_select_lex_unit::exec()
|
||||
if (!res && union_result->flush())
|
||||
{
|
||||
thd->lex->current_select= lex_select_save;
|
||||
DBUG_RETURN(1);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
}
|
||||
if (res)
|
||||
@@ -465,7 +463,7 @@ int st_select_lex_unit::exec()
|
||||
optimized= 1;
|
||||
|
||||
/* Send result to 'result' */
|
||||
res= -1;
|
||||
res= TRUE;
|
||||
{
|
||||
List<Item_func_match> empty_list;
|
||||
empty_list.empty();
|
||||
@@ -484,7 +482,7 @@ int st_select_lex_unit::exec()
|
||||
fake_select_lex->options, result)))
|
||||
{
|
||||
fake_select_lex->table_list.empty();
|
||||
DBUG_RETURN(-1);
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -528,7 +526,7 @@ int st_select_lex_unit::exec()
|
||||
}
|
||||
|
||||
|
||||
int st_select_lex_unit::cleanup()
|
||||
bool st_select_lex_unit::cleanup()
|
||||
{
|
||||
int error= 0;
|
||||
JOIN *join;
|
||||
@@ -536,7 +534,7 @@ int st_select_lex_unit::cleanup()
|
||||
|
||||
if (cleaned)
|
||||
{
|
||||
DBUG_RETURN(0);
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
cleaned= 1;
|
||||
|
||||
@@ -610,19 +608,19 @@ void st_select_lex_unit::reinit_exec_mechanism()
|
||||
old_result old select_result object
|
||||
|
||||
RETURN
|
||||
0 - OK
|
||||
-1 - error
|
||||
FALSE - OK
|
||||
TRUE - error
|
||||
*/
|
||||
|
||||
int st_select_lex_unit::change_result(select_subselect *result,
|
||||
select_subselect *old_result)
|
||||
bool st_select_lex_unit::change_result(select_subselect *result,
|
||||
select_subselect *old_result)
|
||||
{
|
||||
int res= 0;
|
||||
bool res= FALSE;
|
||||
for (SELECT_LEX *sl= first_select_in_union(); sl; sl= sl->next_select())
|
||||
{
|
||||
if (sl->join && sl->join->result == old_result)
|
||||
if ((res= sl->join->change_result(result)))
|
||||
return (res);
|
||||
if (sl->join->change_result(result))
|
||||
return TRUE;
|
||||
}
|
||||
if (fake_select_lex && fake_select_lex->join)
|
||||
res= fake_select_lex->join->change_result(result);
|
||||
|
||||
Reference in New Issue
Block a user