MCPcopy Index your code
hub / github.com/uber/aresdb / asyncCopyDimensionVector

Function asyncCopyDimensionVector

query/aql_processor.go:633–663  ·  view source on GitHub ↗

helper function for copy dimension vector. Returns the total size of dimension vector.

(toDimVector, fromDimVector unsafe.Pointer, length, offset int, numDimsPerDimWidth queryCom.DimCountsPerDimWidth,
	toVectorCapacity, fromVectorCapacity int, copyFunc cgoutils.AsyncMemCopyFunc,
	stream unsafe.Pointer, device int)

Source from the content-addressed store, hash-verified

631
632// helper function for copy dimension vector. Returns the total size of dimension vector.
633func asyncCopyDimensionVector(toDimVector, fromDimVector unsafe.Pointer, length, offset int, numDimsPerDimWidth queryCom.DimCountsPerDimWidth,
634 toVectorCapacity, fromVectorCapacity int, copyFunc cgoutils.AsyncMemCopyFunc,
635 stream unsafe.Pointer, device int) {
636
637 ptrFrom, ptrTo := fromDimVector, toDimVector
638 numNullVectors := 0
639 for _, numDims := range numDimsPerDimWidth {
640 numNullVectors += int(numDims)
641 }
642
643 dimBytes := 1 << uint(len(numDimsPerDimWidth)-1)
644 bytesToCopy := length * dimBytes
645 for _, numDim := range numDimsPerDimWidth {
646 for i := 0; i < int(numDim); i++ {
647 ptrTemp := utils.MemAccess(ptrTo, dimBytes*offset)
648 copyFunc(ptrTemp, ptrFrom, bytesToCopy, stream, device)
649 ptrTo = utils.MemAccess(ptrTo, dimBytes*toVectorCapacity)
650 ptrFrom = utils.MemAccess(ptrFrom, dimBytes*fromVectorCapacity)
651 }
652 dimBytes >>= 1
653 bytesToCopy = length * dimBytes
654 }
655
656 // copy null bytes
657 for i := 0; i < numNullVectors; i++ {
658 ptrTemp := utils.MemAccess(ptrTo, offset)
659 copyFunc(ptrTemp, ptrFrom, length, stream, device)
660 ptrTo = utils.MemAccess(ptrTo, toVectorCapacity)
661 ptrFrom = utils.MemAccess(ptrFrom, fromVectorCapacity)
662 }
663}
664
665// cleanupDeviceResultBuffers cleans up result buffers and resets result fields.
666func (bc *oopkBatchContext) cleanupDeviceResultBuffers() {

Callers 5

postExecMethod · 0.85
ProcessQueryMethod · 0.85
SerializeHLLMethod · 0.85

Calls 1

MemAccessFunction · 0.92

Tested by

no test coverage detected