2020-08-25 15:45:19 +08:00
|
|
|
package reader
|
|
|
|
|
2020-08-29 17:42:41 +08:00
|
|
|
/*
|
|
|
|
|
|
|
|
#cgo CFLAGS: -I../core/include
|
|
|
|
|
|
|
|
#cgo LDFLAGS: -L../core/lib -lmilvus_dog_segment -Wl,-rpath=../core/lib
|
|
|
|
|
|
|
|
#include "segment_c.h"
|
|
|
|
|
|
|
|
*/
|
2020-08-25 15:45:19 +08:00
|
|
|
import "C"
|
2020-08-28 17:29:26 +08:00
|
|
|
import (
|
2020-09-01 16:23:39 +08:00
|
|
|
"github.com/czs007/suvlim/pulsar/schema"
|
2020-08-28 17:29:26 +08:00
|
|
|
)
|
|
|
|
|
2020-08-28 18:39:00 +08:00
|
|
|
const SegmentLifetime = 20000
|
2020-08-25 15:45:19 +08:00
|
|
|
|
|
|
|
type Segment struct {
|
2020-08-28 17:29:26 +08:00
|
|
|
SegmentPtr *C.SegmentBase
|
2020-09-01 16:23:39 +08:00
|
|
|
SegmentId uint64
|
2020-08-25 15:45:19 +08:00
|
|
|
SegmentCloseTime uint64
|
|
|
|
}
|
|
|
|
|
|
|
|
func (s *Segment) GetRowCount() int64 {
|
|
|
|
// TODO: C type to go type
|
|
|
|
return C.GetRowCount(s)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (s *Segment) GetStatus() int {
|
|
|
|
// TODO: C type to go type
|
|
|
|
return C.GetStatus(s)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (s *Segment) GetMaxTimestamp() uint64 {
|
|
|
|
// TODO: C type to go type
|
|
|
|
return C.GetMaxTimestamp(s)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (s *Segment) GetMinTimestamp() uint64 {
|
|
|
|
// TODO: C type to go type
|
|
|
|
return C.GetMinTimestamp(s)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (s *Segment) GetDeletedCount() uint64 {
|
|
|
|
// TODO: C type to go type
|
|
|
|
return C.GetDeletedCount(s)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (s *Segment) Close() {
|
|
|
|
// TODO: C type to go type
|
|
|
|
C.CloseSegment(s)
|
|
|
|
}
|
2020-08-28 17:29:26 +08:00
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
func SegmentInsert(segment *Segment, collectionName string, partitionTag string, entityIds *[]int64, timestamps *[]uint64, dataChunk [][]*schema.FieldValue) ResultEntityIds {
|
|
|
|
// TODO: wrap cgo
|
|
|
|
return ResultEntityIds{}
|
|
|
|
}
|
|
|
|
|
|
|
|
func SegmentDelete(segment *Segment, collectionName string, entityIds *[]int64, timestamps *[]uint64) ResultEntityIds {
|
|
|
|
// TODO: wrap cgo
|
|
|
|
return ResultEntityIds{}
|
|
|
|
}
|
|
|
|
|
2020-08-28 18:39:00 +08:00
|
|
|
func SegmentSearch(segment *Segment, collectionName string, queryString string, timestamps *[]uint64, vectorRecord *[]schema.VectorRecord) ResultEntityIds {
|
2020-08-28 17:29:26 +08:00
|
|
|
// TODO: wrap cgo
|
|
|
|
return ResultEntityIds{}
|
|
|
|
}
|