summaryrefslogtreecommitdiff
path: root/mysql-test
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 /mysql-test
parent0c0fe7a8623db29ae810df9b8c83b49d9ca86cc5 (diff)
downloadmariadb-git-ff485d2dc4d5adaf5eef0ccd03ce62adf3bd30b3.tar.gz
MDEV-5438 A view can mask a table that supports discovery
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/suite/archive/discover_5438.result13
-rw-r--r--mysql-test/suite/archive/discover_5438.test25
2 files changed, 38 insertions, 0 deletions
diff --git a/mysql-test/suite/archive/discover_5438.result b/mysql-test/suite/archive/discover_5438.result
new file mode 100644
index 00000000000..b5ab56aa364
--- /dev/null
+++ b/mysql-test/suite/archive/discover_5438.result
@@ -0,0 +1,13 @@
+create table t1 (a int) engine=archive;
+create view t1 as select "I am a view" as a;
+ERROR 42S01: Table 't1' already exists
+drop table t1;
+create table t1 (a int) engine=archive;
+grant select on test.t1 to foo@bar;
+drop user foo@bar;
+drop table t1;
+create table t1 (a int) engine=archive;
+create table t2 (a int);
+alter table t2 rename t1;
+ERROR 42S01: Table 't1' already exists
+drop table t2, t1;
diff --git a/mysql-test/suite/archive/discover_5438.test b/mysql-test/suite/archive/discover_5438.test
new file mode 100644
index 00000000000..c05955baaf3
--- /dev/null
+++ b/mysql-test/suite/archive/discover_5438.test
@@ -0,0 +1,25 @@
+#
+# MDEV-5438 - A view can mask a table that supports discovery
+#
+# in a few places the server was still using !access(path, F_OK) to
+# determine whether a table exists
+#
+source include/have_archive.inc;
+
+create table t1 (a int) engine=archive;
+--error ER_TABLE_EXISTS_ERROR
+create view t1 as select "I am a view" as a;
+drop table t1;
+
+create table t1 (a int) engine=archive;
+grant select on test.t1 to foo@bar;
+drop user foo@bar;
+drop table t1;
+
+create table t1 (a int) engine=archive;
+create table t2 (a int);
+--error ER_TABLE_EXISTS_ERROR
+alter table t2 rename t1;
+drop table t2, t1;
+
+