only run cat step on slices that exist (as opposed to 0-n slices)

This commit is contained in:
travisturner 2014-09-15 14:58:54 -05:00
parent fbb8a28d27
commit d6510791ca
2 changed files with 12 additions and 5 deletions

View file

@ -183,6 +183,15 @@ func (d *Database) NumSlices() (int, error) {
return len(d.slices), nil
}
// return the slice_ids that are in a database
func (d *Database) SliceIds() ([]int, error) {
var rtn []int
for _, slice := range d.slices {
rtn = append(rtn, slice.id)
}
return rtn, nil
}
///////// FRAMES ////////////////////////////////////////////////////////////////////
// A frame is a collection of slices in a given category

View file

@ -459,17 +459,15 @@ func (self *QueryPlanner) buildTree(query *Query, slice int) (QueryTree, error)
tree = &CatQueryTree{N: n}
}
p = tree.(Appendable)
numSlices, err := self.Database.NumSlices()
slice_ids, err := self.Database.SliceIds()
if err != nil {
return nil, err
}
for slice := 0; slice < numSlices; slice++ {
//for slice := 0; slice < 3; slice++ {
subtree, err := self.buildTree(query, slice)
for i := range slice_ids {
subtree, err := self.buildTree(query, slice_ids[i])
if err != nil {
return nil, err
}
p.Append(subtree)
}
} else {