summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2013-12-13 14:26:10 +0100
committerSergei Golubchik <sergii@pisem.net>2013-12-13 14:26:10 +0100
commitff485d2dc4d5adaf5eef0ccd03ce62adf3bd30b3 (patch)
tree250676745923651e8199fa2a9985ad2ec716b5bf /sql
parent0c0fe7a8623db29ae810df9b8c83b49d9ca86cc5 (diff)
downloadmariadb-git-ff485d2dc4d5adaf5eef0ccd03ce62adf3bd30b3.tar.gz
MDEV-5438 A view can mask a table that supports discovery
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_acl.cc7
-rw-r--r--sql/sql_table.cc2
-rw-r--r--sql/sql_view.cc2
3 files changed, 3 insertions, 8 deletions
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index 5cf1e3097f4..ae724ae4672 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -5413,12 +5413,7 @@ int mysql_table_grant(THD *thd, TABLE_LIST *table_list,
{
if (!(rights & CREATE_ACL))
{
- char buf[FN_REFLEN + 1];
- build_table_filename(buf, sizeof(buf) - 1, table_list->db,
- table_list->table_name, reg_ext, 0);
- fn_format(buf, buf, "", "", MY_UNPACK_FILENAME | MY_RESOLVE_SYMLINKS |
- MY_RETURN_REAL_PATH | MY_APPEND_EXT);
- if (access(buf,F_OK))
+ if (!ha_table_exists(thd, table_list->db, table_list->table_name, 0))
{
my_error(ER_NO_SUCH_TABLE, MYF(0), table_list->db, table_list->alias);
DBUG_RETURN(TRUE);
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 98a6eee7b16..e0e778a6baf 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -7840,7 +7840,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
Table maybe does not exist, but we got an exclusive lock
on the name, now we can safely try to find out for sure.
*/
- if (!access(alter_ctx.get_new_filename(), F_OK))
+ if (ha_table_exists(thd, alter_ctx.new_db, alter_ctx.new_name, 0))
{
/* Table will be closed in do_command() */
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), alter_ctx.new_alias);
diff --git a/sql/sql_view.cc b/sql/sql_view.cc
index 505b8b25f89..09ce9c37e2d 100644
--- a/sql/sql_view.cc
+++ b/sql/sql_view.cc
@@ -908,7 +908,7 @@ loop_out:
fn_format(path_buff, file.str, dir.str, "", MY_UNPACK_FILENAME);
path.length= strlen(path_buff);
- if (!access(path.str, F_OK))
+ if (ha_table_exists(thd, view->db, view->table_name, NULL))
{
if (mode == VIEW_CREATE_NEW)
{