From 122a2fdaf1dd61f09a5051d5a037bf6f0659459b Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 21 Apr 2005 13:09:19 +0200 Subject: [PATCH] Fix for failing ps_7ndb.test, force write_row when batching inserts so that update of primary key is done before next value to insert --- sql/ha_ndbcluster.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index a6b4f928e72..bf8db96c76f 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -1894,6 +1894,7 @@ int ha_ndbcluster::write_row(byte *record) m_bulk_insert_not_flushed= TRUE; if ((m_rows_to_insert == (ha_rows) 1) || ((m_rows_inserted % m_bulk_insert_rows) == 0) || + m_primary_key_update || set_blob_value) { THD *thd= current_thd; @@ -2018,17 +2019,19 @@ int ha_ndbcluster::update_row(const byte *old_data, byte *new_data) if (delete_res) { DBUG_PRINT("info", ("delete failed")); - // Undo write_row(new_data) DBUG_RETURN(delete_res); } // Insert new row DBUG_PRINT("info", ("delete succeded")); + m_primary_key_update= TRUE; insert_res= write_row(new_data); + m_primary_key_update= FALSE; if (insert_res) { DBUG_PRINT("info", ("insert failed")); if (trans->commitStatus() == NdbConnection::Started) { + // Undo write_row(new_data) m_primary_key_update= TRUE; insert_res= write_row((byte *)old_data); m_primary_key_update= FALSE;