Omit fields for Resp when NOFIELDS is used. (#198)

fixes #198
This commit is contained in:
Josh Baker 2017-07-21 15:56:29 -07:00
parent d9c46a3f29
commit 29634f86ba
1 changed files with 13 additions and 12 deletions

View File

@ -55,11 +55,11 @@ type scanWriter struct {
}
type ScanWriterParams struct {
id string
o geojson.Object
fields []float64
id string
o geojson.Object
fields []float64
distance float64
noLock bool
noLock bool
}
func (c *Controller) newScanWriter(
@ -386,16 +386,17 @@ func (sw *scanWriter) writeObject(opts ScanWriterParams) bool {
}))
}
fvs := orderFields(sw.fmap, opts.fields)
if len(fvs) > 0 {
fvals := make([]resp.Value, 0, len(fvs)*2)
for i, fv := range fvs {
fvals = append(fvals, resp.StringValue(fv.field), resp.StringValue(strconv.FormatFloat(fv.value, 'f', -1, 64)))
i++
if sw.hasFieldsOutput() {
fvs := orderFields(sw.fmap, opts.fields)
if len(fvs) > 0 {
fvals := make([]resp.Value, 0, len(fvs)*2)
for i, fv := range fvs {
fvals = append(fvals, resp.StringValue(fv.field), resp.StringValue(strconv.FormatFloat(fv.value, 'f', -1, 64)))
i++
}
vals = append(vals, resp.ArrayValue(fvals))
}
vals = append(vals, resp.ArrayValue(fvals))
}
if opts.distance > 0 {
vals = append(vals, resp.FloatValue(opts.distance))
}