| Return Type | Function name | Arguments |
|---|---|---|
| _hz_vn_Dat* | _hz_tmpl_ISAM::DeleteKey | (int32_t&,const void*,) |
Declared in file: hzIsamT.h
Defined in file : hzIsamT.cpp
Function Logic:
Function body:
_hz_vn_Dat* _hz_tmpl_ISAM::DeleteKey (int32_t& nSlot)const void* pKey,
{
// Arguments: 1) key The key be removed
//
// Returns: E_OK If operation successful
// E_NOTFOUND If the key was not found in the ISAM
_hzfunc("_hz_tmpl_ISAM::DeleteKey") ;
_hz_vn_Dat* pDN = 0; // Target data node (from which delete will occur)
// Check args
if (!Root())
return 0;
// Locate the 'target' top level node
pDN = _findDnodeByKey(nSlot, pKey, HZ_ISAMSRCH_LO) ;
if (!pDN)
return 0;
if (nSlot >&eq; HZ_T_ISAMNODE_FULL)
Fatal("Isam=%d: Illegal slot no %d for node %d\n", IsamId(), nSlot, pDN->m_Id) ;
// Expel the entity from the node
pDN = _expelDataSlot(pDN, nSlot) ;
if (Count() != Population())
Fatal("Isam=%d: Expected population %d, actual %d\n", IsamId(), Population(), Count()) ;
return pDN ;
}