mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-08-28 02:44:59 +00:00
remove ImportRoaringRequestView type
This commit is contained in:
parent
46c22a101f
commit
1faa789b31
5 changed files with 23 additions and 38 deletions
11
api.go
11
api.go
|
|
@ -285,21 +285,20 @@ func (api *API) ImportRoaring(ctx context.Context, indexName, fieldName string,
|
|||
return NewBadRequestError(errors.New("roaring import is only supported for set and time fields"))
|
||||
}
|
||||
|
||||
var viewName string
|
||||
for _, node := range nodes {
|
||||
node := node
|
||||
if node.ID == api.server.nodeID {
|
||||
eg.Go(func() error {
|
||||
var err error
|
||||
for _, view := range req.Views {
|
||||
for viewName, viewData := range req.Views {
|
||||
// must make a copy of data to operate on locally.
|
||||
// field.importRoaring changes data
|
||||
data := make([]byte, len(view.Data))
|
||||
copy(data, view.Data)
|
||||
if view.Name == "" {
|
||||
data := make([]byte, len(viewData))
|
||||
copy(data, viewData)
|
||||
if viewName == "" {
|
||||
viewName = viewStandard
|
||||
} else {
|
||||
viewName = fmt.Sprintf("%s_%s", viewStandard, view.Name)
|
||||
viewName = fmt.Sprintf("%s_%s", viewStandard, viewName)
|
||||
}
|
||||
err = field.importRoaring(data, shard, viewName, req.Clear)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -358,17 +358,15 @@ func encodeImportValueRequest(m *pilosa.ImportValueRequest) *internal.ImportValu
|
|||
}
|
||||
}
|
||||
|
||||
func encodeImportRoaringRequestView(m *pilosa.ImportRoaringRequestView) *internal.ImportRoaringRequestView {
|
||||
return &internal.ImportRoaringRequestView{
|
||||
Name: m.Name,
|
||||
Data: m.Data,
|
||||
}
|
||||
}
|
||||
|
||||
func encodeImportRoaringRequest(m *pilosa.ImportRoaringRequest) *internal.ImportRoaringRequest {
|
||||
views := make([]*internal.ImportRoaringRequestView, len(m.Views))
|
||||
for i, view := range m.Views {
|
||||
views[i] = encodeImportRoaringRequestView(&view)
|
||||
i := 0
|
||||
for viewName, viewData := range m.Views {
|
||||
views[i] = &internal.ImportRoaringRequestView{
|
||||
Name: viewName,
|
||||
Data: viewData,
|
||||
}
|
||||
i += 1
|
||||
}
|
||||
return &internal.ImportRoaringRequest{
|
||||
Clear: m.Clear,
|
||||
|
|
@ -944,15 +942,10 @@ func decodeImportValueRequest(pb *internal.ImportValueRequest, m *pilosa.ImportV
|
|||
m.Values = pb.Values
|
||||
}
|
||||
|
||||
func decodeImportRoaringRequestView(pb *internal.ImportRoaringRequestView, m *pilosa.ImportRoaringRequestView) {
|
||||
m.Name = pb.Name
|
||||
m.Data = pb.Data
|
||||
}
|
||||
|
||||
func decodeImportRoaringRequest(pb *internal.ImportRoaringRequest, m *pilosa.ImportRoaringRequest) {
|
||||
views := make([]pilosa.ImportRoaringRequestView, len(pb.Views))
|
||||
for i, view := range pb.Views {
|
||||
decodeImportRoaringRequestView(view, &views[i])
|
||||
views := map[string][]byte{}
|
||||
for _, view := range pb.Views {
|
||||
views[view.Name] = view.Data
|
||||
}
|
||||
m.Clear = pb.Clear
|
||||
m.Views = views
|
||||
|
|
|
|||
|
|
@ -96,14 +96,9 @@ type ImportRequest struct {
|
|||
Timestamps []int64
|
||||
}
|
||||
|
||||
type ImportRoaringRequestView struct {
|
||||
Name string
|
||||
Data []byte
|
||||
}
|
||||
|
||||
type ImportRoaringRequest struct {
|
||||
Clear bool
|
||||
Views []ImportRoaringRequestView
|
||||
Views map[string][]byte
|
||||
}
|
||||
|
||||
type ImportResponse struct {
|
||||
|
|
|
|||
|
|
@ -988,12 +988,10 @@ func MustNewClient(host string, h *gohttp.Client) *Client {
|
|||
|
||||
func makeImportRoaringRequest(clear bool, viewData string) *pilosa.ImportRoaringRequest {
|
||||
roaringData, _ := hex.DecodeString(viewData)
|
||||
view := pilosa.ImportRoaringRequestView{
|
||||
Name: "",
|
||||
Data: roaringData,
|
||||
}
|
||||
return &pilosa.ImportRoaringRequest{
|
||||
Clear: clear,
|
||||
Views: []pilosa.ImportRoaringRequestView{view},
|
||||
Views: map[string][]byte{
|
||||
"": roaringData,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,8 +93,8 @@ func TestHandler_Endpoints(t *testing.T) {
|
|||
roaringData, _ := hex.DecodeString("3B3001000100000900010000000100010009000100")
|
||||
msg := pilosa.ImportRoaringRequest{
|
||||
Clear: false,
|
||||
Views: []pilosa.ImportRoaringRequestView{
|
||||
{Name: "", Data: roaringData},
|
||||
Views: map[string][]byte{
|
||||
"": roaringData,
|
||||
},
|
||||
}
|
||||
ser := proto.Serializer{}
|
||||
|
|
@ -125,8 +125,8 @@ func TestHandler_Endpoints(t *testing.T) {
|
|||
roaringData, _ := hex.DecodeString("3B3001000100000900010000000100010009000100")
|
||||
msg := pilosa.ImportRoaringRequest{
|
||||
Clear: false,
|
||||
Views: []pilosa.ImportRoaringRequestView{
|
||||
{Name: "", Data: roaringData},
|
||||
Views: map[string][]byte{
|
||||
"": roaringData,
|
||||
},
|
||||
}
|
||||
ser := proto.Serializer{}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue