diff options
author | unknown <monty@mysql.com> | 2004-09-03 22:38:45 +0300 |
---|---|---|
committer | unknown <monty@mysql.com> | 2004-09-03 22:38:45 +0300 |
commit | 99be6d3060b894b276c16fb9994dbf486c2d69be (patch) | |
tree | 9135550a8742bce25308042b7911105df3d70963 /sql/sql_select.cc | |
parent | 2c3f49a64d773395cc0e41fb35c5b6e3b5a56871 (diff) | |
parent | d0211cf5beae33c7f33d7aab6acebe13892af47c (diff) | |
download | mariadb-git-99be6d3060b894b276c16fb9994dbf486c2d69be.tar.gz |
Merge with pulled code
mysql-test/r/view.result:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_subselect.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/table.h:
Auto merged
tests/client_test.c:
Auto merged
sql/sql_base.cc:
Merge
sql/sql_insert.cc:
Merge
sql/sql_select.cc:
Merge
sql/sql_view.cc:
Merge
sql/table.cc:
Merge
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r-- | sql/sql_select.cc | 66 |
1 files changed, 30 insertions, 36 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 1768f332fd3..3e0ed0de96c 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); @@ -11568,7 +11559,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 */ @@ -11624,31 +11615,33 @@ 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 { - append_identifier(thd, str, view_db.str, view_db.length); - str->append('.'); - append_identifier(thd, str, 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(' '); - append_identifier(thd, str, alias, strlen(alias)); + append_identifier(thd, str, view_db.str, view_db.length); + str->append('.'); + append_identifier(thd, str, view_name.str, view_name.length); + cmp_name= view_name.str; } - } - else if (derived) - { - str->append('('); - derived->print(str); - str->append(") ", 2); - append_identifier(thd, str, alias, strlen(alias)); - } - else - { - append_identifier(thd, str, db, db_length); - str->append('.'); - append_identifier(thd, str, real_name, real_name_length); - 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 { + append_identifier(thd, str, db, db_length); + str->append('.'); + append_identifier(thd, str, real_name, real_name_length); + cmp_name= real_name; + } + if (my_strcasecmp(table_alias_charset, cmp_name, alias)) + { + { str->append(' '); append_identifier(thd, str, alias, strlen(alias)); } @@ -11656,6 +11649,7 @@ void st_table_list::print(THD *thd, String *str) } + void st_select_lex::print(THD *thd, String *str) { if (!thd) |