2956 Kevin Lewis 2009-01-07
Bug#41835 - Table::getSyncPrior() was called with
a null record pointer because Table::checkAncestor()
was called immediately after Table::fetch(),
which can return a null.
modified:
storage/falcon/Table.cpp
=== modified file 'storage/falcon/Table.cpp'
--- a/storage/falcon/Table.cpp 2008-12-16 20:40:38 +0000
+++ b/storage/falcon/Table.cpp 2009-01-07 06:14:34 +0000
@@ -1488,13 +1488,13 @@ void Table::deleteRecord(Transaction * t
// syncPrior is not needed here. It is handled in fetchVersion()
Record *candidate = fetch(orgRecord->recordNumber);
+ if (!candidate)
+ return;
+
checkAncestor(candidate, orgRecord);
RecordVersion *record;
bool wasLock = false;
- if (!candidate)
- return;
-
if (candidate->state == recLock && candidate->getTransaction() == transaction)
{
if (candidate->getSavePointId() == transaction->curSavePointId)
@@ -3094,13 +3094,12 @@ void Table::update(Transaction * transac
database->preUpdate();
Record *candidate = fetch(orgRecord->recordNumber);
- checkAncestor(candidate, orgRecord);
-
if (!candidate)
return;
+ checkAncestor(candidate, orgRecord);
Record *oldRecord = candidate;
-
+
if (candidate->getTransaction() == transaction)
{
if (candidate->state == recLock)
Thread |
---|
• bzr push into mysql-6.0-falcon-team branch (klewis:2956) Bug#41835 | Kevin Lewis | 7 Jan |