summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <Sinisa@sinisa.nasamreza.org>2003-07-02 00:10:47 +0300
committerunknown <Sinisa@sinisa.nasamreza.org>2003-07-02 00:10:47 +0300
commit12d879c912543fffa77cecfda799bc20ddd35df5 (patch)
tree351c9ea12859860f3bf1ad0503470728a4a3de54 /sql
parent0a23db44911e9e13a3b36bec11b68cfa7a922505 (diff)
downloadmariadb-git-12d879c912543fffa77cecfda799bc20ddd35df5.tar.gz
Lot's of clean-ups and fixes for 4.0.14.
include/my_global.h: CONFIG_SMP mysql-test/r/grant.result: Test cases for bug fixes mysql-test/r/insert_select.result: Test cases for bug fixes mysql-test/r/union.result: Test cases for bug fixes mysql-test/t/grant.test: Test cases for bug fixes mysql-test/t/insert_select.test: Test cases for bug fixes mysql-test/t/union.test: Test cases for bug fixes sql/sql_acl.cc: Fix for granting global privileges on db level sql/sql_parse.cc: Fix for INSERT... SELECT sql/sql_select.cc: removing a fix sql/sql_union.cc: P
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_acl.cc2
-rw-r--r--sql/sql_parse.cc10
-rw-r--r--sql/sql_select.cc6
-rw-r--r--sql/sql_union.cc3
4 files changed, 10 insertions, 11 deletions
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index 3e9abc0410d..90497cc8b43 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -2325,7 +2325,7 @@ int mysql_grant (THD *thd, const char *db, List <LEX_USER> &list,
}
else
{
- net_printf(&thd->net,ER_WRONG_USAGE,"DB GRANT","GLOBAL PRIVILEGEY");
+ net_printf(&thd->net,ER_WRONG_USAGE,"DB GRANT","GLOBAL PRIVILEGES");
result= -1;
}
}
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 4570576afef..1ac4120187b 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -3386,14 +3386,18 @@ TABLE_LIST *add_table_to_list(Table_ident *table, LEX_STRING *alias,
tables ;
tables=tables->next)
{
- if (!strcmp(alias_str,tables->alias) && !strcmp(ptr->db, tables->db))
+ if (ptr->db_length == tables->db_length && !memcmp(ptr->db, tables->db, ptr->db_length))
{
if ((thd->lex.sql_command & (SQLCOM_INSERT_SELECT | SQLCOM_REPLACE_SELECT))
&& (tables->lock_type & (TL_WRITE_CONCURRENT_INSERT |
TL_WRITE_LOW_PRIORITY | TL_WRITE_DELAYED |
TL_WRITE)))
- thd->lex.select->options |= OPTION_BUFFER_RESULT;
- else
+ {
+ if (ptr->real_name_length == tables->real_name_length &&
+ !memcmp(ptr->real_name, tables->real_name,ptr->real_name_length))
+ thd->lex.select->options |= OPTION_BUFFER_RESULT;
+ }
+ else if (!strcmp(alias_str,tables->alias))
{
net_printf(&thd->net,ER_NONUNIQ_TABLE,alias_str); /* purecov: tested */
DBUG_RETURN(0); /* purecov: tested */
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 6c2d06051d4..eb29946a3d7 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -974,11 +974,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds,
thd->select_limit))
{
if (!join.join_tab[join.const_tables].select->quick)
- error= return_zero_rows(&join, result, tables, fields,
- 0, select_options,
- "Impossible WHERE noticed after reading const tables",
- having,procedure);
- goto err;
+ goto err;
}
}
join.having=having; // Actually a parameter
diff --git a/sql/sql_union.cc b/sql/sql_union.cc
index 407bf64d628..bd7bc7027d3 100644
--- a/sql/sql_union.cc
+++ b/sql/sql_union.cc
@@ -33,7 +33,7 @@ int mysql_union(THD *thd, LEX *lex,select_result *result)
TABLE *table;
int describe=(lex->select_lex.options & SELECT_DESCRIBE) ? 1 : 0;
int res;
- bool found_rows_for_union= 0;
+ bool found_rows_for_union= lex->select_lex.options & OPTION_FOUND_ROWS;
TABLE_LIST result_table_list;
TABLE_LIST *first_table=(TABLE_LIST *)lex->select_lex.table_list.first;
TMP_TABLE_PARAM tmp_table_param;
@@ -63,7 +63,6 @@ int mysql_union(THD *thd, LEX *lex,select_result *result)
*/
lex_sl= sl;
order= (ORDER *) lex_sl->order_list.first;
- found_rows_for_union = lex->select_lex.options & OPTION_FOUND_ROWS && sl->select_limit;
// This is done to eliminate unnecessary slowing down of the first query
if (!order || !describe)
last_sl->next=0; // Remove this extra element