mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-07 17:15:56 +00:00
only run cat step on slices that exist (as opposed to 0-n slices)
This commit is contained in:
parent
fbb8a28d27
commit
d6510791ca
2 changed files with 12 additions and 5 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue