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 Sandstaa | 26 Mar |