From: Date: June 13 2007 2:27pm Subject: Re: CREATE INDEX is not committed? List-Archive: http://lists.mysql.com/internals/34727 Message-Id: <20070613122756.GB5099@mysql.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Hello Marko! On Wed, Jun 13, 2007 at 12:05:32PM +0300, Marko M=E4kel=E4 wrote: > I wonder if the following is correct behavior. This is from > innodb.test: >=20 > create table t1 (i int, j int ) ENGINE=3Dinnodb; > insert into t1 values (1,2); > select * from t1 where i=3D1 and j=3D2; > create index ax1 on t1 (i,j); > select * from t1 where i=3D1 and j=3D2; >=20 > If I set a breakpoint on innobase_commit, it gets invoked for the > INSERT, but not for the CREATE TABLE or CREATE INDEX statements. >=20 > I have the impression that this behavior has been changed in the past > few weeks. >=20 > The documentation of CREATE INDEX doesn't mention transactions. I > suppose that InnoDB is not the only transactional engine where data > dictionary operations are not truly transactional. Is it OK for the > engine to commit the transaction when it feels like that, or should > MySQL instead invoke commit? Strange, I see innobase_commit called by this CREATE INDEX both in 5.1 and 5.0. There is a ha_commit_stmt() in copy_data_between_tables(). Which version and which source tree are you on?