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

bool cbd500_Tree::bd500PropagationNeeded (  )  const [inline]

function: bd500PropagationNeeded description: The difference of LeafCounts between a LeafNode and its IndexNode is calculated. returns: true, if difference exceeds MAX_LEAFCOUNT_DIFF_GBD500

Definition at line 619 of file gbd500.h.

References cbd600_Node::bd600IsAccessable(), cbd600_Node::bd600IsLeaf(), and cbd600_Node::bd600LeafCount().

Referenced by bd520LeafCountPropagation().

{
    ROUTINE_DBG_MEO00 ("bd500PropagationNeeded");

    bool Result;

    if ( m_RootLevel == LEAF_LEVEL_BD00 || ! m_Node.bd600IsAccessable() || ! m_Node.bd600IsLeaf() )
    {
        /* PTS 1104578 UH 10-11-1999 */
        Result = false;
    }
    else
    {
        tsp00_Int4 IndexLeafCount = m_PathInfo[LEAF_LEVEL_BD00+1].piLeafCount_bd500;
        tsp00_Int4 LeafCount      = m_Node.bd600LeafCount();

#       if COMPILEMODE_MEO00 >= SLOW_MEO00
        t01p2int4 (bd_inv, "IdxLeafCount", IndexLeafCount, "LeaveCount  ", LeafCount);
#       endif

        if ( LeafCount > IndexLeafCount )
            Result = LeafCount - IndexLeafCount > 3
                     &&
                     ((100*(LeafCount-IndexLeafCount))/LeafCount) > MAX_LEAFCOUNT_DIFF_GBD500;
        else
            Result = IndexLeafCount - LeafCount > 3
                     &&
                     ((100*(IndexLeafCount-LeafCount))/IndexLeafCount) > MAX_LEAFCOUNT_DIFF_GBD500;
    }


#   if COMPILEMODE_MEO00 >= SLOW_MEO00
    t01bool (bd_inv, "Result      ", Result);
#   endif

    return Result;
}


Generated by  Doxygen 1.6.0   Back to index