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