ndb - bug#27757

tupscan misses uncommitted inserts by own transaction
    let tupkeyreq handle dirty/savepoint

  also siable diskscan as temporary fix for bug#27776


storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp:
  let tupkeyreq handle dirty/savepoint
This commit is contained in:
unknown 2007-04-12 06:59:56 +02:00
parent 5d80f2f987
commit 7cde212bea

View file

@ -61,11 +61,15 @@ Dbtup::execACC_SCANREQ(Signal* signal)
jam();
break;
}
#if BUG_27776_FIXED
if (!AccScanReq::getNoDiskScanFlag(req->requestInfo)
&& tablePtr.p->m_no_of_disk_attributes)
{
bits |= ScanOp::SCAN_DD;
}
#endif
bool mm = (bits & ScanOp::SCAN_DD);
if (tablePtr.p->m_attributes[mm].m_no_of_varsize > 0) {
bits |= ScanOp::SCAN_VS;
@ -593,7 +597,6 @@ Dbtup::scanNext(Signal* signal, ScanOpPtr scanPtr)
const bool mm = (bits & ScanOp::SCAN_DD);
const bool lcp = (bits & ScanOp::SCAN_LCP);
const bool dirty = (bits & ScanOp::SCAN_LOCK) == 0;
Uint32 lcp_list = fragPtr.p->m_lcp_keep_list;
Uint32 size = table.m_offsets[mm].m_fix_header_size +
@ -764,8 +767,7 @@ Dbtup::scanNext(Signal* signal, ScanOpPtr scanPtr)
jam();
if (! (thbits & Tuple_header::FREE))
{
if (! ((thbits & Tuple_header::ALLOC) && dirty))
goto found_tuple;
goto found_tuple;
}
}
else