List:Commits« Previous MessageNext Message »
From:Olav Sandstaa Date:March 26 2009 3:09pm
Subject:bzr push into mysql-6.0-falcon-team branch (olav:3080 to 3082)
View as plain text  
 3082 Olav Sandstaa	2009-03-26
      Fix isCommitted() to return true only if in Committed state.

    modified:
      storage/falcon/TransactionState.h
 3081 Olav Sandstaa	2009-03-26
      Remove the transactionId from RecordVersion objects. The RecordVersion object will instead 
      use the transactionId from the TransactionState object.
     @ storage/falcon/BackLog.cpp
        Replace reading RecordVersion's transactionId directly with a method call.
     @ storage/falcon/RecordVersion.cpp
        Replace the local transactionId with using it from the TransactionState object.
     @ storage/falcon/RecordVersion.h
        Eliminate the transactioId from the RecordVersion class.
     @ storage/falcon/Transaction.cpp
        Replace reading RecordVersion's transactionId directly with a method call.

    modified:
      storage/falcon/BackLog.cpp
      storage/falcon/RecordVersion.cpp
      storage/falcon/RecordVersion.h
      storage/falcon/Transaction.cpp
 3080 lars-erik.bjork@stripped	2009-03-26 [merge]
      merging

    modified:
      storage/falcon/Transaction.cpp
=== modified file 'storage/falcon/BackLog.cpp'

=== modified file 'storage/falcon/BackLog.cpp'
--- a/storage/falcon/BackLog.cpp	2009-03-02 23:21:28 +0000
+++ b/storage/falcon/BackLog.cpp	2009-03-26 14:34:17 +0000
@@ -99,7 +99,7 @@
 		{
 		RecordVersion *record = fetch(backlogId);
 		
-		if (record->transactionId != transaction->transactionId)
+		if (record->getTransactionId() != transaction->transactionId)
 			{
 			record->release(REC_HISTORY);
 			

=== modified file 'storage/falcon/RecordVersion.cpp'
--- a/storage/falcon/RecordVersion.cpp	2009-03-25 22:11:35 +0000
+++ b/storage/falcon/RecordVersion.cpp	2009-03-26 14:34:17 +0000
@@ -85,7 +85,7 @@
 	// prior versions from 'stream'
 
 	virtualOffset = stream->getInt64();
-	transactionId = stream->getInt();
+	TransId transactionId = stream->getInt();
 	int priorType = stream->getInt();
 	superceded = false;
 	queuedForDelete = false;
@@ -114,6 +114,14 @@
 			transaction = NULL;
 		***/
 		}
+	else
+		{
+		// Creates a transaction state object for storing the transaction id
+
+		transactionState = new TransactionState();
+		transactionState->transactionId = transactionId;
+		transactionState->state = Committed;
+		}
 }
 
 RecordVersion::~RecordVersion()
@@ -180,7 +188,7 @@
 			if (state == Committed || recTransState == trans->transactionState)
 				return (getRecordData()) ? this : NULL;
 			}
-		else if (transactionId <= trans->transactionId)
+		else if (recTransState->transactionId <= trans->transactionId)
 			{
 			if (trans->visible(recTransState, FOR_READING))
 				return (getRecordData()) ? this : NULL;
@@ -381,7 +389,7 @@
 
 TransId RecordVersion::getTransactionId()
 {
-	return transactionId;
+	return transactionState->transactionId;
 }
 
 int RecordVersion::getSavePointId()
@@ -484,7 +492,7 @@
 void RecordVersion::print(void)
 {
 	Log::debug("  %p\tId %d, enc %d, state %d, tid %d, use %d, grp %d, prior %p\n",
-			this, recordNumber, encoding, state, transactionId, useCount,
+			this, recordNumber, encoding, state, transactionState->transactionId, useCount,
 			generation, priorVersion);
 	
 	if (priorVersion)
@@ -500,7 +508,7 @@
 {
 	Record::serialize(stream);
 	stream->putInt64(virtualOffset);
-	stream->putInt(transactionId);
+	stream->putInt(transactionState->transactionId);
 	
 	// Recursively serialize the prior version chain
 	
@@ -528,10 +536,9 @@
 	
 	transactionState = newTransState;
 	transactionState->addRef();
-	transactionId = transactionState->transactionId;
 }
 
 Transaction* RecordVersion::findTransaction(void)
 {
-	return format->table->database->transactionManager->findTransaction(transactionId);
+	return format->table->database->transactionManager->findTransaction(transactionState->transactionId);
 }

=== modified file 'storage/falcon/RecordVersion.h'
--- a/storage/falcon/RecordVersion.h	2009-03-25 22:11:35 +0000
+++ b/storage/falcon/RecordVersion.h	2009-03-26 14:34:17 +0000
@@ -75,7 +75,7 @@
 	//Transaction		*transaction;
 	RecordVersion	*nextInTrans;
 	RecordVersion	*prevInTrans;
-	TransId			transactionId;
+	//TransId			transactionId;
 	int				savePointId;
 	bool			superceded;
 	bool			queuedForDelete;

=== modified file 'storage/falcon/Transaction.cpp'
--- a/storage/falcon/Transaction.cpp	2009-03-26 12:16:59 +0000
+++ b/storage/falcon/Transaction.cpp	2009-03-26 14:34:17 +0000
@@ -571,7 +571,7 @@
 	
 	// Thaw the record then update the total record data bytes for this transaction
 	
-	ASSERT(record->transactionId == transactionId);
+	ASSERT(record->getTransactionId() == transactionId);
 	bool thawed;
 	int bytesRestored = control.updateRecords.thaw(record, &thawed);
 	

=== modified file 'storage/falcon/TransactionState.h'
--- a/storage/falcon/TransactionState.h	2009-03-25 22:11:35 +0000
+++ b/storage/falcon/TransactionState.h	2009-03-26 14:48:40 +0000
@@ -67,7 +67,7 @@
 
 	inline bool	isCommitted() const
 	    {
-		return state == Active || state == Limbo;
+		return state == Committed;
 	    }
 
 


Attachment: [text/bzr-bundle] bzr/olav@sun.com-20090326144840-4prk570c1vu57r65.bundle
Thread
bzr push into mysql-6.0-falcon-team branch (olav:3080 to 3082) Olav Sandstaa26 Mar