From 30711664e857ee8db8c7e55342822c27e51a37d3 Mon Sep 17 00:00:00 2001 From: Travis Turner Date: Tue, 29 Jan 2019 12:36:54 -0600 Subject: [PATCH] ensure ClearRow() arguments get translated --- executor.go | 5 ++++- executor_test.go | 13 +++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/executor.go b/executor.go index a5c9b4391..20fc298c5 100644 --- a/executor.go +++ b/executor.go @@ -1693,6 +1693,9 @@ func (e *executor) executeClearRow(ctx context.Context, index string, c *pql.Cal } result, err := e.mapReduce(ctx, index, shards, c, opt, mapFn, reduceFn) + if err != nil { + return false, errors.Wrap(err, "mapreducing clearrow") + } return result.(bool), err } @@ -2368,7 +2371,7 @@ func (e *executor) translateCalls(ctx context.Context, index string, idx *Index, func (e *executor) translateCall(index string, idx *Index, c *pql.Call) error { var colKey, rowKey, fieldName string switch c.Name { - case "Set", "Clear", "Row", "Range", "SetColumnAttrs": + case "Set", "Clear", "Row", "Range", "SetColumnAttrs", "ClearRow": // Positional args in new PQL syntax require special handling here. colKey = "_" + columnLabel fieldName, _ = c.FieldArg() diff --git a/executor_test.go b/executor_test.go index 5d7b9e952..146585d33 100644 --- a/executor_test.go +++ b/executor_test.go @@ -2887,6 +2887,19 @@ func TestExecutor_Execute_ClearRow(t *testing.T) { t.Fatalf("topn wrong results: %v", res.Results) } }) + + // Ensure that ClearRow returns false when the row to clear needs translation. + t.Run("WithKeys", func(t *testing.T) { + wq := "" + rq := []string{ + `ClearRow(f="bar")`, + } + + responses := runCallTest(t, wq, rq, &pilosa.IndexOptions{}, pilosa.OptFieldKeys()) + if res := responses[0].Results[0].(bool); res { + t.Fatalf("unexpected result: %+v", res) + } + }) } // Ensure a row can be set.