diff options
author | unknown <monty@hundin.mysql.fi> | 2001-08-29 17:33:41 +0300 |
---|---|---|
committer | unknown <monty@hundin.mysql.fi> | 2001-08-29 17:33:41 +0300 |
commit | 1241395fce6c953f38b5940978593f3705e2666d (patch) | |
tree | 3d579fb9d02e1fa69457e4ec1706fb325190d90c /sql/sql_parse.cc | |
parent | bfe2213babce74eac616dd3be0c8ac5bce16f032 (diff) | |
download | mariadb-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.cc | 12 |
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); } |