List:Commits« Previous MessageNext Message »
From:Kevin Lewis Date:April 13 2009 3:13pm
Subject:bzr commit into mysql-6.0-falcon-team branch (kevin.lewis:3118)
Bug#44233
View as plain text  
#At file:///C:/Work/bzr/Merge/mysql-6.0-falcon-team/ based on revid:kevin.lewis@stripped

 3118 Kevin Lewis	2009-04-13
      Bug#44233 - The priorRecord for the record to be inserted  might not be the current record if that prior record rolled back.  This may have happend by a system transactions during updateCarbinalities.  If that happened, the current record may not be a RecordVersion, and may not have a TransactionState.

    modified:
      storage/falcon/Table.cpp
=== modified file 'storage/falcon/Table.cpp'
--- a/storage/falcon/Table.cpp	2009-04-13 14:41:15 +0000
+++ b/storage/falcon/Table.cpp	2009-04-13 15:12:55 +0000
@@ -3354,9 +3354,12 @@ void Table::validateAndInsert(Transactio
 					{
 					// The current record is not our prior. If it is committed, we have
 					// an update conflict.  If not, wait on that trans and, if it is not
-					// committed, try again.
+					// committed, try again.  (transState == NULL) means committed.
 
 					TransactionState *transState = current->getTransactionState();
+					if (!transState)
+						throw SQLError(UPDATE_CONFLICT, "update conflict in table %s.%s record %d", schemaName, name, record->recordNumber);
+
 					transState->addRef();
 					current->release(REC_HISTORY);
 					syncTable.unlock();


Attachment: [text/bzr-bundle] bzr/kevin.lewis@sun.com-20090413151255-h64gg0x3rihwpp2e.bundle
Thread
bzr commit into mysql-6.0-falcon-team branch (kevin.lewis:3118)Bug#44233Kevin Lewis13 Apr