From d95f06ec3a09dfe0ef4c3b92f232eaf436bb9b06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Carlos=20Nieto?= <jose.carlos@menteslibres.net> Date: Tue, 13 Dec 2016 04:29:37 +0000 Subject: [PATCH] Set compount.fn only if any elements were provided --- db.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/db.go b/db.go index ed27d671..2d886275 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()...) -- GitLab