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.
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.