summaryrefslogtreecommitdiff
path: root/sql/sql_base.cc
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2015-04-28 21:11:49 +0200
committerSergei Golubchik <serg@mariadb.org>2015-04-28 21:11:49 +0200
commitf9c02d7c29e7ddc9fa274e7fe23e5800653660f4 (patch)
tree817db8c66d7feb63147fe24f8d7474a64660451a /sql/sql_base.cc
parentfbab0685a7b7f39db0217823ad90dd47034eae29 (diff)
parent83ce3529b8b2ba5b8070d12aaecbb6c3e3fcaeca (diff)
downloadmariadb-git-f9c02d7c29e7ddc9fa274e7fe23e5800653660f4.tar.gz
Merge branch 'openquery/MDEV-6916-maria-5.5-check_view-r4408' into 5.5
Diffstat (limited to 'sql/sql_base.cc')
-rw-r--r--sql/sql_base.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index affccf09513..592215da4d0 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -643,7 +643,8 @@ found:
open_table_error(share, share->error, share->open_errno, share->errarg);
DBUG_RETURN(0);
}
- if (share->is_view && !(db_flags & OPEN_VIEW))
+ if ((share->is_view && !(db_flags & OPEN_VIEW)) ||
+ (!share->is_view && (db_flags & OPEN_VIEW_ONLY)))
{
open_table_error(share, 1, ENOENT, 0);
DBUG_RETURN(0);
@@ -3027,7 +3028,11 @@ retry_share:
mysql_mutex_lock(&LOCK_open);
if (!(share= get_table_share_with_discover(thd, table_list, key,
- key_length, OPEN_VIEW,
+ key_length,
+ (OPEN_VIEW |
+ ((table_list->required_type ==
+ FRMTYPE_VIEW) ?
+ OPEN_VIEW_ONLY : 0)),
&error,
hash_value)))
{