diff --git a/db.go b/db.go index ed27d6710e3b6d4744e799702beff4fc8bbf0777..2d88627576855dd25ab53638a5201f2f598bf1d0 100644 --- a/db.go +++ b/db.go @@ -266,11 +266,13 @@ type compound struct { } func newCompound(conds ...Compound) *compound { - return &compound{ - fn: func() []Compound { + c := &compound{} + if len(conds) > 0 { + c.fn = func() []Compound { return conds - }, + } } + return c } func defaultJoin(in ...Compound) []Compound { @@ -307,7 +309,7 @@ func (c *compound) frame(a []Compound) *compound { } func compoundFastForward(curr *compound) []Compound { - if curr == nil { + if curr == nil || curr.fn == nil { return []Compound{} } return append(compoundFastForward(curr.prev), curr.fn()...)