Sorry, should read DDL locking behavior!
ERROR 1015 is
ERROR 1015 (HY000): Can't lock file (errno: 212)
On Di, 2009-05-12 at 19:44 +0000, Hakan Kuecuekyilmaz wrote:
> Hi,
>
> I did an analyzes of Falcon's and InnoDB's DML locking behvior.
>
> Falcon InnoDB
>
> DROP TABLE blocked blocked
> TRUNCATE ERROR 1015 works without block
> DROP COLUMN ERROR 1015 blocked
> DROP INDEX ERROR 1015 blocked
> ADD COLUMN ERROR 1015 blocked
> ADD INDEX ERROR 1015 blocked
>
> Legend:
>
> DROP TABLE: DROP TABLE t1;
> TRUNCATE: TRUNCATE t1;
> DROP COLUMN: ALTER TABLE t1 DROP COLUMN b;
> DROP INDEX: ALTER TABLE t1 DROP PRIMARY KEY;
> ADD COLUMN: ALTER TABLE t1 ADD COLUMN c varchar(5);
> ADD INDEX: ALTER TABLE t1 ADD INDEX (b);
>
> Details:
> DROP TABLE IF EXISTS t1;
>
> CREATE TABLE t1 (a int PRIMARY KEY, b varchar(5)) Engine Falcon;
> -- In another session with Falcon
> CREATE TABLE t1 (a int PRIMARY KEY, b varchar(5)) Engine InnoDB;
>
> INSERT INTO t1 VALUES (1, 'aaaaa'), (2, 'bbbbb'), (3, 'ccccc');
>
> -- Connection 1
> SET @@autocommit = 0;
> SELECT * FROM t1;
>
> -- Connection 2
> SET @@autocommit = 0;
> -- Theses DML operations were tested in different sessions
> DROP TABLE t1;
> TRUNCATE t1;
> ALTER TABLE t1 DROP COLUMN b;
> ALTER TABLE t1 DROP PRIMARY KEY;
> ALTER TABLE t1 ADD COLUMN c varchar(5);
> ALTER TABLE t1 ADD INDEX (b);
>
> -- CONNECTION 1
> SELECT * FROM t1;
> SELECT * FROM t1;
> COMMIT;
> SELECT * FROM t1;
>
> --
> Hakan Küçükyılmaz, Senior Software Engineer DBTG/MySQL +49
> 160 98953296
> Sun Microsystems GmbH Sonnenallee 1, DE-85551 Kirchheim-Heimstetten
> Geschaeftsfuehrer: Thomas Schroeder, Wolfang Engels, Dr. Roland Boemer
> Vorsitz d. Aufs.rat.: Martin Haering HRB MUC 161028 49.011, 8.376
>
>
--
Hakan Küçükyılmaz, Senior Software Engineer DBTG/MySQL +49 160
98953296
Sun Microsystems GmbH Sonnenallee 1, DE-85551 Kirchheim-Heimstetten
Geschaeftsfuehrer: Thomas Schroeder, Wolfang Engels, Dr. Roland Boemer
Vorsitz d. Aufs.rat.: Martin Haering HRB MUC 161028 49.011, 8.376