summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc
diff options
context:
space:
mode:
authorunknown <monty@hundin.mysql.fi>2001-08-29 17:33:41 +0300
committerunknown <monty@hundin.mysql.fi>2001-08-29 17:33:41 +0300
commit1241395fce6c953f38b5940978593f3705e2666d (patch)
tree3d579fb9d02e1fa69457e4ec1706fb325190d90c /sql/sql_parse.cc
parentbfe2213babce74eac616dd3be0c8ac5bce16f032 (diff)
downloadmariadb-git-1241395fce6c953f38b5940978593f3705e2666d.tar.gz
Test that all MERGE tables comes from the same database
Docs/manual.texi: Changelog and more documentation about ALTER TABLE include/mysqld_error.h: New error message mysql-test/t/merge.test: Test of error conditions sql/gen_lex_hash.cc: Smaller array sql/ha_myisammrg.cc: Cleanup sql/share/czech/errmsg.txt: New message sql/share/danish/errmsg.txt: New message sql/share/dutch/errmsg.txt: New message sql/share/english/errmsg.txt: New message sql/share/estonian/errmsg.txt: New message sql/share/french/errmsg.txt: New message sql/share/german/errmsg.txt: New message sql/share/greek/errmsg.txt: New message sql/share/hungarian/errmsg.txt: New message sql/share/italian/errmsg.txt: New message sql/share/japanese/errmsg.txt: New message sql/share/korean/errmsg.txt: New message sql/share/norwegian-ny/errmsg.txt: New message sql/share/norwegian/errmsg.txt: New message sql/share/polish/errmsg.txt: New message sql/share/portuguese/errmsg.txt: New message sql/share/romanian/errmsg.txt: New message sql/share/russian/errmsg.txt: New message sql/share/slovak/errmsg.txt: New message sql/share/spanish/errmsg.txt: New message sql/share/swedish/errmsg.txt: New message
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r--sql/sql_parse.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 2e5333925e7..99fc0fc8fbf 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -2178,10 +2178,18 @@ static bool check_merge_table_access(THD *thd, char *db,
int error=0;
if (table_list)
{
- /* Force all tables to use the current database */
+ /* Check that all tables use the current database */
TABLE_LIST *tmp;
for (tmp=table_list; tmp ; tmp=tmp->next)
- tmp->db=db;
+ {
+ if (!tmp->db || !tmp->db[0])
+ tmp->db=db;
+ else if (!strcmp(tmp->db,db))
+ {
+ send_error(&thd->net,ER_UNION_TABLES_IN_DIFFERENT_DIR);
+ return 1;
+ }
+ }
error=check_table_access(thd, SELECT_ACL | UPDATE_ACL | DELETE_ACL,
table_list);
}