remove ImportRoaringRequestView type

This commit is contained in:
Yuce Tekol 2018-11-21 14:53:16 +03:00
parent 46c22a101f
commit 1faa789b31
No known key found for this signature in database
GPG key ID: CB59E46D2FB90573
5 changed files with 23 additions and 38 deletions

11
api.go
View file

@ -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 {

View file

@ -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

View file

@ -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 {

View file

@ -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,
},
}
}

View file

@ -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{}