Kevin,
This has to be most annoying assert in Falcon, next to the 'active'
asserts in the Record class.
Historically, this asserted because hasRecord() failed to thaw the
record, leaving the record state as 'recChilled'. In this case, however,
dup->state is 'recRollback'.
Do you think we should we check for 'recRollback', too?
bool Table::checkUniqueRecordVersion(...)
[...]
for (Record *dup = rec; dup; dup = dup->getPriorVersion())
{
if (dup == record)
continue; // Check next record version
// Get the record's transaction state. Don't wait yet.
state = transaction->getRelativeState(dup, DO_NOT_WAIT);
// Check for a deleted record or a record lock
if (!dup->hasRecord())
{
// If the record is a lock record, keep looking for a dup.
if (dup->state == recLock)
continue; // Next record version.
// The record has been deleted.
>>> ASSERT(dup->state == recDeleted); <<<
switch (state)
case CommittedVisible:
[...]