From ac8018c4f3d21c8c999ccda7f7dff45feb46c9d9 Mon Sep 17 00:00:00 2001 From: Linh Vo Date: Thu, 23 Mar 2017 12:38:09 -0500 Subject: [PATCH] change Pair struct Key to ID --- cache.go | 16 ++++++++-------- executor_test.go | 30 +++++++++++++++--------------- fragment.go | 4 ++-- fragment_test.go | 48 ++++++++++++++++++++++++------------------------ handler_test.go | 8 ++++---- 5 files changed, 53 insertions(+), 53 deletions(-) diff --git a/cache.go b/cache.go index 6a0fb3447..d3e2b6710 100644 --- a/cache.go +++ b/cache.go @@ -258,20 +258,20 @@ func (p BitmapPairs) Len() int { return len(p) } func (p BitmapPairs) Less(i, j int) bool { return p[i].Count > p[j].Count } type Pair struct { - Key uint64 `json:"id"` + ID uint64 `json:"id"` Count uint64 `json:"count"` } func encodePair(p Pair) *internal.Pair { return &internal.Pair{ - Key: p.Key, + Key: p.ID, Count: p.Count, } } func decodePair(pb *internal.Pair) Pair { return Pair{ - Key: pb.Key, + ID: pb.Key, Count: pb.Count, } } @@ -307,18 +307,18 @@ func (p Pairs) Add(other []Pair) []Pair { // Create lookup of key/counts. m := make(map[uint64]uint64, len(p)) for _, pair := range p { - m[pair.Key] = pair.Count + m[pair.ID] = pair.Count } // Add/merge from other. for _, pair := range other { - m[pair.Key] += pair.Count + m[pair.ID] += pair.Count } // Convert back to slice. a := make([]Pair, 0, len(m)) for k, v := range m { - a = append(a, Pair{Key: k, Count: v}) + a = append(a, Pair{ID: k, Count: v}) } return a } @@ -327,7 +327,7 @@ func (p Pairs) Add(other []Pair) []Pair { func (p Pairs) Keys() []uint64 { a := make([]uint64, len(p)) for i := range p { - a[i] = p[i].Key + a[i] = p[i].ID } return a } @@ -336,7 +336,7 @@ func (p Pairs) String() string { var buf bytes.Buffer buf.WriteString("Pairs(") for i := range p { - fmt.Fprintf(&buf, "%d/%d", p[i].Key, p[i].Count) + fmt.Fprintf(&buf, "%d/%d", p[i].ID, p[i].Count) if i < len(p)-1 { buf.WriteString(", ") } diff --git a/executor_test.go b/executor_test.go index 196c2e815..eb362ca39 100644 --- a/executor_test.go +++ b/executor_test.go @@ -231,8 +231,8 @@ func TestExecutor_Execute_TopN(t *testing.T) { if result, err := e.Execute(context.Background(), "d", MustParse(`TopN(frame=f, n=2)`), nil, nil); err != nil { t.Fatal(err) } else if !reflect.DeepEqual(result[0], []pilosa.Pair{ - {Key: 0, Count: 5}, - {Key: 10, Count: 2}, + {ID: 0, Count: 5}, + {ID: 10, Count: 2}, }) { t.Fatalf("unexpected result: %s", spew.Sdump(result)) } @@ -254,7 +254,7 @@ func TestExecutor_Execute_TopN_fill(t *testing.T) { if result, err := e.Execute(context.Background(), "d", MustParse(`TopN(frame=f, n=1)`), nil, nil); err != nil { t.Fatal(err) } else if !reflect.DeepEqual(result, []interface{}{[]pilosa.Pair{ - {Key: 0, Count: 4}, + {ID: 0, Count: 4}, }}) { t.Fatalf("unexpected result: %s", spew.Sdump(result)) } @@ -288,7 +288,7 @@ func TestExecutor_Execute_TopN_fill_small(t *testing.T) { if result, err := e.Execute(context.Background(), "d", MustParse(`TopN(frame=f, n=1)`), nil, nil); err != nil { t.Fatal(err) } else if !reflect.DeepEqual(result, []interface{}{[]pilosa.Pair{ - {Key: 0, Count: 5}, + {ID: 0, Count: 5}, }}) { t.Fatalf("unexpected result: %s", spew.Sdump(result)) } @@ -319,9 +319,9 @@ func TestExecutor_Execute_TopN_Src(t *testing.T) { if result, err := e.Execute(context.Background(), "d", MustParse(`TopN(Bitmap(id=100, frame=other), frame=f, n=3)`), nil, nil); err != nil { t.Fatal(err) } else if !reflect.DeepEqual(result, []interface{}{[]pilosa.Pair{ - {Key: 20, Count: 3}, - {Key: 10, Count: 2}, - {Key: 0, Count: 1}, + {ID: 20, Count: 3}, + {ID: 10, Count: 2}, + {ID: 0, Count: 1}, }}) { t.Fatalf("unexpected result: %s", spew.Sdump(result)) } @@ -343,7 +343,7 @@ func TestExecutor_Execute_TopN_Attr(t *testing.T) { if result, err := e.Execute(context.Background(), "d", MustParse(`TopN(frame="f", n=1, field="category", filters=[123])`), nil, nil); err != nil { t.Fatal(err) } else if !reflect.DeepEqual(result, []interface{}{[]pilosa.Pair{ - {Key: 10, Count: 1}, + {ID: 10, Count: 1}, }}) { t.Fatalf("unexpected result: %s", spew.Sdump(result)) } @@ -366,7 +366,7 @@ func TestExecutor_Execute_TopN_Attr_Src(t *testing.T) { if result, err := e.Execute(context.Background(), "d", MustParse(`TopN(Bitmap(id=10,frame=f),frame="f", n=1, field="category", filters=[123])`), nil, nil); err != nil { t.Fatal(err) } else if !reflect.DeepEqual(result, []interface{}{[]pilosa.Pair{ - {Key: 10, Count: 1}, + {ID: 10, Count: 1}, }}) { t.Fatalf("unexpected result: %s", spew.Sdump(result)) } @@ -611,9 +611,9 @@ func TestExecutor_Execute_Remote_TopN(t *testing.T) { // Return pair counts. return []interface{}{[]pilosa.Pair{ - {Key: 0, Count: 5}, - {Key: 10, Count: 2}, - {Key: 30, Count: 2}, + {ID: 0, Count: 5}, + {ID: 10, Count: 2}, + {ID: 30, Count: 2}, }}, nil } @@ -627,9 +627,9 @@ func TestExecutor_Execute_Remote_TopN(t *testing.T) { if res, err := e.Execute(context.Background(), "d", MustParse(`TopN(frame=f, n=3)`), nil, nil); err != nil { t.Fatal(err) } else if !reflect.DeepEqual(res, []interface{}{[]pilosa.Pair{ - {Key: 0, Count: 5}, - {Key: 30, Count: 4}, - {Key: 10, Count: 2}, + {ID: 0, Count: 5}, + {ID: 30, Count: 4}, + {ID: 10, Count: 2}, }}) { t.Fatalf("unexpected results: %s", spew.Sdump(res)) } diff --git a/fragment.go b/fragment.go index 578075851..75ed0a298 100644 --- a/fragment.go +++ b/fragment.go @@ -559,7 +559,7 @@ func (f *Fragment) Top(opt TopOptions) ([]Pair, error) { } } - heap.Push(results, Pair{Key: bitmapID, Count: count}) + heap.Push(results, Pair{ID: bitmapID, Count: count}) // If we reach the requested number of pairs and we are not computing // intersections then simply exit. If we are intersecting then sort @@ -590,7 +590,7 @@ func (f *Fragment) Top(opt TopOptions) ([]Pair, error) { continue } - heap.Push(results, Pair{Key: bitmapID, Count: count}) + heap.Push(results, Pair{ID: bitmapID, Count: count}) } //Pop first opt.N elements out of heap diff --git a/fragment_test.go b/fragment_test.go index 9780dfc17..f99b83848 100644 --- a/fragment_test.go +++ b/fragment_test.go @@ -152,9 +152,9 @@ func TestFragment_Top(t *testing.T) { t.Fatal(err) } else if len(pairs) != 2 { t.Fatalf("unexpected count: %d", len(pairs)) - } else if pairs[0] != (pilosa.Pair{Key: 100, Count: 3}) { + } else if pairs[0] != (pilosa.Pair{ID: 100, Count: 3}) { t.Fatalf("unexpected pair(0): %v", pairs[0]) - } else if pairs[1] != (pilosa.Pair{Key: 102, Count: 2}) { + } else if pairs[1] != (pilosa.Pair{ID: 102, Count: 2}) { t.Fatalf("unexpected pair(1): %v", pairs[1]) } } @@ -182,9 +182,9 @@ func TestFragment_Top_Filter(t *testing.T) { t.Fatal(err) } else if len(pairs) != 2 { t.Fatalf("unexpected count: %d", len(pairs)) - } else if pairs[0] != (pilosa.Pair{Key: 102, Count: 2}) { + } else if pairs[0] != (pilosa.Pair{ID: 102, Count: 2}) { t.Fatalf("unexpected pair(0): %v", pairs[0]) - } else if pairs[1] != (pilosa.Pair{Key: 101, Count: 1}) { + } else if pairs[1] != (pilosa.Pair{ID: 101, Count: 1}) { t.Fatalf("unexpected pair(1): %v", pairs[1]) } } @@ -207,9 +207,9 @@ func TestFragment_TopN_Intersect(t *testing.T) { if pairs, err := f.Top(pilosa.TopOptions{N: 3, Src: src}); err != nil { t.Fatal(err) } else if !reflect.DeepEqual(pairs, []pilosa.Pair{ - {Key: 101, Count: 3}, - {Key: 102, Count: 2}, - {Key: 100, Count: 1}, + {ID: 101, Count: 3}, + {ID: 102, Count: 2}, + {ID: 100, Count: 1}, }) { t.Fatalf("unexpected pairs: %s", spew.Sdump(pairs)) } @@ -241,16 +241,16 @@ func TestFragment_TopN_Intersect_Large(t *testing.T) { if pairs, err := f.Top(pilosa.TopOptions{N: 10, Src: src}); err != nil { t.Fatal(err) } else if !reflect.DeepEqual(pairs, []pilosa.Pair{ - {Key: 999, Count: 19}, - {Key: 998, Count: 18}, - {Key: 997, Count: 17}, - {Key: 996, Count: 16}, - {Key: 995, Count: 15}, - {Key: 994, Count: 14}, - {Key: 993, Count: 13}, - {Key: 992, Count: 12}, - {Key: 991, Count: 11}, - {Key: 990, Count: 10}, + {ID: 999, Count: 19}, + {ID: 998, Count: 18}, + {ID: 997, Count: 17}, + {ID: 996, Count: 16}, + {ID: 995, Count: 15}, + {ID: 994, Count: 14}, + {ID: 993, Count: 13}, + {ID: 992, Count: 12}, + {ID: 991, Count: 11}, + {ID: 990, Count: 10}, }) { t.Fatalf("unexpected pairs: %s", spew.Sdump(pairs)) } @@ -270,8 +270,8 @@ func TestFragment_TopN_BitmapIDs(t *testing.T) { if pairs, err := f.Top(pilosa.TopOptions{BitmapIDs: []uint64{100, 101, 200}}); err != nil { t.Fatal(err) } else if !reflect.DeepEqual(pairs, []pilosa.Pair{ - {Key: 101, Count: 4}, - {Key: 100, Count: 3}, + {ID: 101, Count: 4}, + {ID: 100, Count: 3}, }) { t.Fatalf("unexpected pairs: %s", spew.Sdump(pairs)) } @@ -675,9 +675,9 @@ func TestFragment_Tanimoto(t *testing.T) { t.Fatal(err) } else if len(pairs) != 2 { t.Fatalf("unexpected count: %d", len(pairs)) - } else if pairs[0] != (pilosa.Pair{Key: 100, Count: 3}) { + } else if pairs[0] != (pilosa.Pair{ID: 100, Count: 3}) { t.Fatalf("unexpected pair(0): %v", pairs[0]) - } else if pairs[1] != (pilosa.Pair{Key: 101, Count: 2}) { + } else if pairs[1] != (pilosa.Pair{ID: 101, Count: 2}) { t.Fatalf("unexpected pair(1): %v", pairs[1]) } } @@ -697,11 +697,11 @@ func TestFragment_Zero_Tanimoto(t *testing.T) { t.Fatal(err) } else if len(pairs) != 3 { t.Fatalf("unexpected count: %d", len(pairs)) - } else if pairs[0] != (pilosa.Pair{Key: 100, Count: 3}) { + } else if pairs[0] != (pilosa.Pair{ID: 100, Count: 3}) { t.Fatalf("unexpected pair(0): %v", pairs[0]) - } else if pairs[1] != (pilosa.Pair{Key: 101, Count: 2}) { + } else if pairs[1] != (pilosa.Pair{ID: 101, Count: 2}) { t.Fatalf("unexpected pair(1): %v", pairs[1]) - } else if pairs[2] != (pilosa.Pair{Key: 102, Count: 2}) { + } else if pairs[2] != (pilosa.Pair{ID: 102, Count: 2}) { t.Fatalf("unexpected pair(1): %v", pairs[2]) } } diff --git a/handler_test.go b/handler_test.go index 8191e2d3f..be88d6d9a 100644 --- a/handler_test.go +++ b/handler_test.go @@ -345,8 +345,8 @@ func TestHandler_Query_Pairs_JSON(t *testing.T) { h := NewHandler() h.Executor.ExecuteFn = func(ctx context.Context, db string, query *pql.Query, slices []uint64, opt *pilosa.ExecOptions) ([]interface{}, error) { return []interface{}{[]pilosa.Pair{ - {Key: 1, Count: 2}, - {Key: 3, Count: 4}, + {ID: 1, Count: 2}, + {ID: 3, Count: 4}, }}, nil } @@ -364,8 +364,8 @@ func TestHandler_Query_Pairs_Protobuf(t *testing.T) { h := NewHandler() h.Executor.ExecuteFn = func(ctx context.Context, db string, query *pql.Query, slices []uint64, opt *pilosa.ExecOptions) ([]interface{}, error) { return []interface{}{[]pilosa.Pair{ - {Key: 1, Count: 2}, - {Key: 3, Count: 4}, + {ID: 1, Count: 2}, + {ID: 3, Count: 4}, }}, nil }