From 2ca4e971f16bf4de2a37d748f29bd1225f00fca0 Mon Sep 17 00:00:00 2001 From: Travis Date: Wed, 6 May 2020 13:04:46 -0500 Subject: [PATCH] remove extra index lookup --- executor.go | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/executor.go b/executor.go index b58266fb9..5c882241a 100644 --- a/executor.go +++ b/executor.go @@ -673,33 +673,32 @@ func (e *executor) executeFieldValueCall(ctx context.Context, index string, c *p return ValCount{}, errors.New("FieldValue(): field required") } - // Fetch field. - field := e.Holder.Field(index, fieldName) - if field == nil { - return ValCount{}, ErrFieldNotFound - } - // Fetch index. idx := e.Holder.Index(index) if idx == nil { return ValCount{}, ErrIndexNotFound } - var colID uint64 + // Fetch field. + field := idx.Field(fieldName) + if field == nil { + return ValCount{}, ErrFieldNotFound + } + var colID uint64 if colKey, ok := c.Args["column"].(string); ok && idx.Keys() { - if id, err := e.Cluster.translateIndexKey(ctx, index, colKey); err != nil { + id, err := e.Cluster.translateIndexKey(ctx, index, colKey) + if err != nil { return ValCount{}, errors.Wrap(err, "getting column id") - } else { - colID = id } + colID = id } else { - if id, ok, err := c.UintArg("column"); !ok || err != nil { + id, ok, err := c.UintArg("column") + if !ok || err != nil { // TODO: this error is getting swallowed somewhere (via curl) return ValCount{}, errors.Wrap(err, "getting column argument") - } else { - colID = id } + colID = id } shard := colID / ShardWidth