diff options
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r-- | sql/sql_select.cc | 65 |
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) |