Logo Search packages:      
Sourcecode: maxdb-7.5.00 version File versions  Download package

void cbd500_Tree::bd500FindNode ( tsp00_KeyPtr  pKey,
tsp00_Int4  KeyLen,
tsp00_Int4  Level = LEAF_LEVEL_BD00 
)

function: bd500FindNode description: The internal node is set to a special node.

The node is found with the specified key and the given level. The Search begins always with the root The internal Node (m_Node.m_RequestKind) tells how Leafs are locked. The Tree must be locked correctly. arguments: Key [in] Level [in]

Definition at line 221 of file vbd500.cpp.

References bd500_FindBranch(), bd500SetToRoot(), and cbd600_Node::m_RequestKind.

Referenced by cbd400_InvTree::bd400AppendPrimKey(), bd500Continue(), bd520LeafCountPropagation(), bd520LeafUnderFlow(), bd530AddRecordSpace(), bd530DelRecord(), bd530GetRecord(), and bd530UpdRecordSpace().

{
    /* Preconditions:
       - The Tree is locked correctly.
       - The internal Node (m_Node) contains the NodeRequest
         for the Node/Leaf, which is searched.
       Description:
       - The Search begins always with the root
    */
    ROUTINE_DBG_MEO00 ("bd500FindNode");

    tsp00_Int4       RecIndex;
    tbd_node_request TargetRequest = m_Node.m_RequestKind;

    bd500SetToRoot(); 
    if ( e_ok != m_TrError ) return;
    bd500_Init();

    while ( m_CurrLevel > Level)
    {
        bd500_FindBranch (pKey, KeyLen, RecIndex);
        if ( e_ok != m_TrError ) break;

        bd500_NextSubNode (RecIndex, Level, TargetRequest);
        if ( e_ok != m_TrError ) break;
    }
}


Generated by  Doxygen 1.6.0   Back to index