From ed86f6ea5d50d107daf09e1eb3d2b2698eb00410 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Podg=C3=B3rski?= Date: Thu, 18 Jun 2020 17:12:34 +0200 Subject: [PATCH] Make a safe cast --- executor.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/executor.go b/executor.go index f2dd49fcb..c54ad6d8d 100644 --- a/executor.go +++ b/executor.go @@ -3125,11 +3125,19 @@ func (e *executor) executeSetRow(ctx context.Context, indexName string, c *pql.C // Merge returned results at coordinating node. reduceFn := func(ctx context.Context, prev, v interface{}) interface{} { - val := v.(bool) - if prev == nil { + val, ok := v.(bool) + if !ok { + return errors.Errorf("executeSetRow.reduceFn: val is non-bool (%+v)", v) + } + if val { return val } - return val || prev.(bool) + + pval, ok := prev.(bool) + if !ok { + return errors.Errorf("executeSetRow.reduceFn: prev is non-bool (%+v)", prev) + } + return pval } result, err := e.mapReduce(ctx, indexName, shards, c, opt, mapFn, reduceFn)