From: John Embretsen Date: November 12 2008 2:07pm Subject: Transactional LOCK TABLE support in Falcon? List-Archive: http://lists.mysql.com/falcon/175 Message-Id: <491AE305.9030304@Sun.COM> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7BIT Hi experts, I'm looking at the test rpl.rpl_locktrans_{innodb,myisam}, with the objective of adding a corresponding test wrapper for Falcon (since this is one of the few so-called engine-independent replication tests). The test tests various uses of the LOCK TABLE command, which is described here: http://dev.mysql.com/doc/refman/6.0/en/lock-tables.html This section in the manual says that only InnoDB supports transactional LOCK TABLE, which seems to match current behavior. My question is, why is this kind of transactional locking not supported by Falcon? (Maria's worklog for this is WL#4574, not started). I am asking simply because I found it a bit counter-intuitive, since Falcon is a transactional engine. And I want to make sure that new tests like this are testing correct behavior. Details: I find that Falcon behaves more like MyISAM than InnoDB in this case. With Falcon, transactional locks are converted to non-transactional locks where possible, e.g.: # # Valid syntax for transactional locks. LOCK TABLE t1 IN SHARE MODE, t2 IN EXCLUSIVE MODE; Warnings: Warning 1615 Converted to non-transactional lock on 't1' Warning 1615 Converted to non-transactional lock on 't2' UNLOCK TABLES; Otherwise, transactional locking fails, e.g. as follows: # Try transactional locks on top of the existing non-transactional locks. LOCK TABLE t1 IN SHARE MODE, t2 IN EXCLUSIVE MODE; ERROR HY000: Cannot convert to non-transactional lock in strict mode on 't1' thank you for your attention, -- John