[MDEV-5438] A view can mask a table that supports discovery Created: 2013-12-12  Updated: 2013-12-23  Resolved: 2013-12-23

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 10.0.6
Fix Version/s: 10.0.7

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None


 Description   

CREATE TABLE t1 (i INT) ENGINE=TokuDB;
CREATE VIEW t1 AS SELECT "I am a view" AS a;
 
SELECT * FROM t1;

SELECT * FROM t1;
a
I am a view

Not reproducible with MyISAM or InnoDB:

CREATE TABLE t1 (i INT) ENGINE=MyISAM;
CREATE VIEW t1 AS SELECT "I am a view" AS a;
bug.t3_tokudb                            [ fail ]
        Test ended at 2013-12-13 00:46:34
 
CURRENT_TEST: bug.t3_tokudb
mysqltest: At line 2: query 'CREATE VIEW t1 AS SELECT "I am a view" AS a' failed: 1050: Table 't1' already exists

Not reproducible on 5.5.



 Comments   
Comment by Sergei Golubchik [ 2013-12-12 ]

Same with Archive. Or — I suppose — any engine that supports table discovery.

Comment by Elena Stepanova [ 2013-12-12 ]

Indeed, I did not consider that TokuDB is different from lets say InnoDB in terms of table discovery.
I've modified the summary.

It is a problem also because it can easily cause replication failure. If I add, for example, "SELECT * FROM t1" after table creation, then the view creation fails as expected; but in case of replication, only two CREATE statements will be replicated (the latter with the error code), while SELECT won't be in the binlog, so on slave the second CREATE will pass, which will cause different error codes on master and slave, which means replication failure.

Generated at Thu Feb 08 07:04:23 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.