change Pair struct Key to ID

This commit is contained in:
Linh Vo 2017-03-23 12:38:09 -05:00
parent 67a691dfe0
commit ac8018c4f3
5 changed files with 53 additions and 53 deletions

View file

@ -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(", ")
}

View file

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

View file

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

View file

@ -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])
}
}

View file

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