summaryrefslogtreecommitdiff
path: root/sql/sql_select.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r--sql/sql_select.cc65
1 files changed, 29 insertions, 36 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 328fd4f9976..10a4d551d32 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -225,25 +225,18 @@ int handle_select(THD *thd, LEX *lex, select_result *result)
thd->net.report_error));
if (thd->net.report_error)
res= 1;
- if (res > 0)
+ if (unlikely(res))
{
if (result)
{
- result->send_error(0, NullS);
+ if (res > 0)
+ result->send_error(0, NullS);
result->abort();
}
- else
+ else if (res > 0)
send_error(thd, 0, NullS);
res= 1; // Error sent to client
}
- if (res < 0)
- {
- if (result)
- {
- result->abort();
- }
- res= 1;
- }
if (result != lex->result)
delete result;
DBUG_RETURN(res);
@@ -348,9 +341,7 @@ JOIN::prepare(Item ***rref_pointer_array,
if ((subselect= select_lex->master_unit()->item))
{
Item_subselect::trans_res res;
- if ((res= ((!thd->lex->view_prepare_mode) ?
- subselect->select_transformer(this) :
- subselect->no_select_transform())) !=
+ if ((res= subselect->select_transformer(this)) !=
Item_subselect::RES_OK)
{
select_lex->fix_prepare_information(thd, &conds);
@@ -11192,7 +11183,7 @@ int mysql_explain_union(THD *thd, SELECT_LEX_UNIT *unit, select_result *result)
SYNOPSIS
print_join()
thd thread handler
- str string where table should bbe printed
+ str string where table should be printed
tables list of tables in join
*/
@@ -11248,30 +11239,31 @@ void st_table_list::print(THD *thd, String *str)
print_join(thd, str, &nested_join->join_list);
str->append(')');
}
- else if (view_name.str)
+ else
{
- str->append(view_db.str, view_db.length);
- str->append('.');
- str->append(view_name.str, view_name.length);
- if (my_strcasecmp(table_alias_charset, view_name.str, alias))
+ const char *cmp_name; // Name to compare with alias
+ if (view_name.str)
{
- str->append(' ');
- str->append(alias);
+ str->append(view_db.str, view_db.length);
+ str->append('.');
+ str->append(view_name.str, view_name.length);
+ cmp_name= view_name.str;
}
- }
- else if (derived)
- {
- str->append('(');
- derived->print(str);
- str->append(") ", 2);
- str->append(alias);
- }
- else
- {
- str->append(db);
- str->append('.');
- str->append(real_name);
- if (my_strcasecmp(table_alias_charset, real_name, alias))
+ else if (derived)
+ {
+ str->append('(');
+ derived->print(str);
+ str->append(')');
+ cmp_name= ""; // Force printing of alias
+ }
+ else
+ {
+ str->append(db);
+ str->append('.');
+ str->append(real_name);
+ cmp_name= real_name;
+ }
+ if (my_strcasecmp(table_alias_charset, cmp_name, alias))
{
str->append(' ');
str->append(alias);
@@ -11279,6 +11271,7 @@ void st_table_list::print(THD *thd, String *str)
}
}
+
void st_select_lex::print(THD *thd, String *str)
{
if (!thd)