===== storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp 1.95 vs edited ===== --- 1.95/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp 2008-01-27 18:39:48 +01:00 +++ storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp 2008-01-27 16:09:18 +01:00 @@ -1691,6 +1691,26 @@ else { regOperPtr->tupVersion= req_struct->m_tuple_ptr->get_tuple_version(); + } + + if(disk && regOperPtr->m_undo_buffer_space == 0) + { + regOperPtr->op_struct.m_wait_log_buffer = 1; + regOperPtr->op_struct.m_load_diskpage_on_commit = 1; + Uint32 sz= regOperPtr->m_undo_buffer_space= + (sizeof(Dbtup::Disk_undo::Free) >> 2) + + regTabPtr->m_offsets[DD].m_fix_header_size - 1; + + terrorCode= c_lgman->alloc_log_space(regFragPtr->m_logfile_group_id, + sz); + if(unlikely(terrorCode)) + { + regOperPtr->m_undo_buffer_space= 0; + goto error; + } + } + +#if 0 if(regTabPtr->m_no_of_disk_attributes) { Uint32 sz; @@ -1719,13 +1739,17 @@ } } +#endif + if (req_struct->attrinfo_len == 0) { return 0; } if (regTabPtr->need_expand(disk)) + { prepare_read(req_struct, regTabPtr, disk); + } { Uint32 RlogSize;