Loading mysql-test/r/ndb_alter_table.result +1 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ drop table t1; DROP TABLE IF EXISTS t2; create table t2 (a int NOT NULL PRIMARY KEY) engine=myisam; alter table t2 engine=ndbcluster; alter table t2 add c int; delete from t2; ERROR HY000: Got temporary error 1217 '1217' from ndbcluster select count(*) from t2 where a+0 > 0; Loading mysql-test/t/ndb_alter_table.test +1 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ while ($1) } enable_query_log; alter table t2 engine=ndbcluster; alter table t2 add c int; --error 1297 delete from t2; #to make sure we do a full table scan Loading ndb/src/ndbapi/NdbConnection.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -201,7 +201,9 @@ NdbConnection::restart(){ } else { theNdb->theFirstTransId = tTransid + 1; } theCommitStatus = Started; theCompletionStatus = NotCompleted; theTransactionIsStarted = false; DBUG_RETURN(0); } DBUG_PRINT("error",("theCompletionStatus != CompletedSuccess")); Loading sql/ha_ndbcluster.cc +9 −23 Original line number Diff line number Diff line Loading @@ -1451,7 +1451,8 @@ int ha_ndbcluster::write_row(byte *record) (int)rows_inserted, (int)bulk_insert_rows)); bulk_insert_not_flushed= false; if (thd->transaction.on) { if (thd->transaction.on) { if (trans->execute(NoCommit) != 0) { skip_auto_increment= true; Loading @@ -1465,22 +1466,7 @@ int ha_ndbcluster::write_row(byte *record) skip_auto_increment= true; DBUG_RETURN(ndb_err(trans)); } #if 0 // this is what we want to use but it is not functional trans->restart(); #else m_ndb->closeTransaction(m_active_trans); m_active_trans= m_ndb->startTransaction(); if (thd->transaction.all.ndb_tid) thd->transaction.all.ndb_tid= m_active_trans; else thd->transaction.stmt.ndb_tid= m_active_trans; if (m_active_trans == NULL) { skip_auto_increment= true; ERR_RETURN(m_ndb->getNdbError()); } trans= m_active_trans; #endif } } if ((has_auto_increment) && (skip_auto_increment)) Loading Loading
mysql-test/r/ndb_alter_table.result +1 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ drop table t1; DROP TABLE IF EXISTS t2; create table t2 (a int NOT NULL PRIMARY KEY) engine=myisam; alter table t2 engine=ndbcluster; alter table t2 add c int; delete from t2; ERROR HY000: Got temporary error 1217 '1217' from ndbcluster select count(*) from t2 where a+0 > 0; Loading
mysql-test/t/ndb_alter_table.test +1 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ while ($1) } enable_query_log; alter table t2 engine=ndbcluster; alter table t2 add c int; --error 1297 delete from t2; #to make sure we do a full table scan Loading
ndb/src/ndbapi/NdbConnection.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -201,7 +201,9 @@ NdbConnection::restart(){ } else { theNdb->theFirstTransId = tTransid + 1; } theCommitStatus = Started; theCompletionStatus = NotCompleted; theTransactionIsStarted = false; DBUG_RETURN(0); } DBUG_PRINT("error",("theCompletionStatus != CompletedSuccess")); Loading
sql/ha_ndbcluster.cc +9 −23 Original line number Diff line number Diff line Loading @@ -1451,7 +1451,8 @@ int ha_ndbcluster::write_row(byte *record) (int)rows_inserted, (int)bulk_insert_rows)); bulk_insert_not_flushed= false; if (thd->transaction.on) { if (thd->transaction.on) { if (trans->execute(NoCommit) != 0) { skip_auto_increment= true; Loading @@ -1465,22 +1466,7 @@ int ha_ndbcluster::write_row(byte *record) skip_auto_increment= true; DBUG_RETURN(ndb_err(trans)); } #if 0 // this is what we want to use but it is not functional trans->restart(); #else m_ndb->closeTransaction(m_active_trans); m_active_trans= m_ndb->startTransaction(); if (thd->transaction.all.ndb_tid) thd->transaction.all.ndb_tid= m_active_trans; else thd->transaction.stmt.ndb_tid= m_active_trans; if (m_active_trans == NULL) { skip_auto_increment= true; ERR_RETURN(m_ndb->getNdbError()); } trans= m_active_trans; #endif } } if ((has_auto_increment) && (skip_auto_increment)) Loading