def copyIntervalFromBuffer(buffer, node, start, end):  #[start, end]
    index = 0
    for i in range(start, end + 1):
        assign(node.interval[index], buffer.interval[i])
        index += 1
    result = True
    return result
Exemplo n.º 2
0
    def insertBucket2(self, _interval, _bucketID, tuples):
        selEntry = IBEntry()
        newNode = IBNode()
        recMax = recordMax()
        recRec = recordRec()

        result = Constants.ERROR
        if (self.rootNode is None):
            return result
        self.evaluation.setDBInterval(_interval)
        self.evaluation.countTotalBuckets()
        result = self.insertBucketRec2(self.rootNode, _interval, _bucketID,
                                       selEntry, newNode, recRec, recMax,
                                       tuples)
        if (result == Constants.OVERFLOW):
            #Overflow in root -> increase the height of the tree
            newRoot = IBNode()
            newRoot.length = 1
            newRoot.level = self.rootNode.level + 1
            newRoot.isLeaf = False
            assign(newRoot.interval[0], recRec.selEntry.interval)
            newRoot.bucketID[0] = recRec.selEntry.bucketID
            if (newRoot.interval[0][Constants.HIGH] < recMax.curMax):
                newRoot.max[0] = recMax.curMax
            else:
                newRoot.max[0] = newRoot.interval[0][Constants.HIGH]
            newRoot.max[1] = recMax.newMax
            newRoot.pointer[0] = self.rootNode
            newRoot.pointer[1] = recRec.newNode
            self.rootNode = newRoot
            result = Constants.SUCCESS
        return result
Exemplo n.º 3
0
def copyIntervalToBuffer(buffer, node, value, position, length):
    for i in range(0, position):
        assign(buffer.interval[i], node.interval[i])
    assign(buffer.interval[position], value)
    for i in range(position + 1, length + 1):
        assign(buffer.interval[i], node.interval[i - 1])
    result = True
    return result
def copyEntryFromBuffer(buffer, entry, position):
    assign(entry.interval, buffer.interval[position])
    entry.max = buffer.max[position]
    entry.bucketID = buffer.bucketID[position]
def copyLeafInterval_Dis(des, des_Start, src, src_Start, length):
    for i in range(0, length):
        assign(des.interval[des_Start + i], src.interval[src_Start + i])
        des.dis[des_Start + i] = src.dis[src_Start + i]
    return True
def copyInterval(des, des_Start, src, src_Start, length):
    for i in range(0, length):
        assign(des.interval[des_Start + i], src.interval[src_Start + i])
    return True