milvus/reader/read_node/partition.go
bigsheeper 4542ed38af Add unittest about timestamp, add client id
Signed-off-by: bigsheeper <yihao.dai@zilliz.com>
2020-09-23 14:26:13 +08:00

45 lines
941 B
Go

package reader
/*
#cgo CFLAGS: -I${SRCDIR}/../../core/include
#cgo LDFLAGS: -L${SRCDIR}/../../core/lib -lmilvus_dog_segment -Wl,-rpath=${SRCDIR}/../../core/lib
#include "collection_c.h"
#include "partition_c.h"
#include "segment_c.h"
*/
import "C"
type Partition struct {
PartitionPtr C.CPartition
PartitionName string
OpenedSegments []*Segment
ClosedSegments []*Segment
}
func (p *Partition) NewSegment(segmentId int64) *Segment {
/*
CSegmentBase
NewSegment(CPartition partition, unsigned long segment_id);
*/
segmentPtr := C.NewSegment(p.PartitionPtr, C.ulong(segmentId))
var newSegment = &Segment{SegmentPtr: segmentPtr, SegmentId: segmentId}
p.OpenedSegments = append(p.OpenedSegments, newSegment)
return newSegment
}
func (p *Partition) DeleteSegment(segment *Segment) {
/*
void
DeleteSegment(CSegmentBase segment);
*/
cPtr := segment.SegmentPtr
C.DeleteSegment(cPtr)
// TODO: remove from p.Segments
}