Comment 2 for bug 983285

Revision history for this message
Elena Stepanova (elenst) wrote : Re: Syntax Error in mysqldump's Output When View's Algorythm is 2

The change happened between MariaDB 5.2 and 5.3.
In 5.2 numeric algorithm values are: undefined=0, temptable=1, merge=2.
In 5.3: undefined=0, merge=5, temptable=9.
As described, it causes problems with dump after upgrade from 5.2 to 5.3.

In MySQL 5.1-5.6 values are 0, 1, 2.

To reproduce the problem:

- Start MariaDB server 5.2;

- execute
CREATE ALGORITHM=UNDEFINED VIEW v_undef AS SELECT 1;
CREATE TABLE t AS SELECT 2;
CREATE ALGORITHM=MERGE VIEW v_merge AS SELECT * FROM t;
 CREATE ALGORITHM=TEMPTABLE VIEW v_temptable AS SELECT 3;

- stop server;
- start MariaDB server 5.3 on the same datadir;
- (optional step, it does not make the difference): run mysql_upgrade
- run SHOW CREATE VIEW v_merge, see that it shows CREATE ALGORITHM=DEFINER= ...
- run mysqldump for the schema, see that the dump says /*!50001 CREATE ALGORITHM=*/ for v_merge and v_temptable;
- attempt to feed the dump to MySQL client, see error 1064 (syntax error).

Thus, it breaks compatibility between versions of MariaDB, and between MySQL and MariaDB.