Commit 122a2fda authored by unknown's avatar unknown

Fix for failing ps_7ndb.test, force write_row when batching inserts so that...

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


parent 7f0f4c58
...@@ -1894,6 +1894,7 @@ int ha_ndbcluster::write_row(byte *record) ...@@ -1894,6 +1894,7 @@ int ha_ndbcluster::write_row(byte *record)
m_bulk_insert_not_flushed= TRUE; m_bulk_insert_not_flushed= TRUE;
if ((m_rows_to_insert == (ha_rows) 1) || if ((m_rows_to_insert == (ha_rows) 1) ||
((m_rows_inserted % m_bulk_insert_rows) == 0) || ((m_rows_inserted % m_bulk_insert_rows) == 0) ||
m_primary_key_update ||
set_blob_value) set_blob_value)
{ {
THD *thd= current_thd; THD *thd= current_thd;
...@@ -2018,17 +2019,19 @@ int ha_ndbcluster::update_row(const byte *old_data, byte *new_data) ...@@ -2018,17 +2019,19 @@ int ha_ndbcluster::update_row(const byte *old_data, byte *new_data)
if (delete_res) if (delete_res)
{ {
DBUG_PRINT("info", ("delete failed")); DBUG_PRINT("info", ("delete failed"));
// Undo write_row(new_data)
DBUG_RETURN(delete_res); DBUG_RETURN(delete_res);
} }
// Insert new row // Insert new row
DBUG_PRINT("info", ("delete succeded")); DBUG_PRINT("info", ("delete succeded"));
m_primary_key_update= TRUE;
insert_res= write_row(new_data); insert_res= write_row(new_data);
m_primary_key_update= FALSE;
if (insert_res) if (insert_res)
{ {
DBUG_PRINT("info", ("insert failed")); DBUG_PRINT("info", ("insert failed"));
if (trans->commitStatus() == NdbConnection::Started) if (trans->commitStatus() == NdbConnection::Started)
{ {
// Undo write_row(new_data)
m_primary_key_update= TRUE; m_primary_key_update= TRUE;
insert_res= write_row((byte *)old_data); insert_res= write_row((byte *)old_data);
m_primary_key_update= FALSE; m_primary_key_update= FALSE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment