From f308f612b68bc6bd5efdd80e06c9f57304f3ee4a Mon Sep 17 00:00:00 2001 From: Anders Eknert Date: Sun, 11 May 2025 10:54:13 +0200 Subject: [PATCH] Don't generate JSON values for wildcard/generated keys in result set (#7567) Saw this by accident, and while I'm not sure how common this is, there's really never any point in serializing a JSON value unless it is known to be used later. Signed-off-by: Anders Eknert --- v1/rego/rego.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/v1/rego/rego.go b/v1/rego/rego.go index fae39273af..c3a16c2be6 100644 --- a/v1/rego/rego.go +++ b/v1/rego/rego.go @@ -2311,17 +2311,18 @@ func (r *Rego) generateResult(qr topdown.QueryResult, ectx *EvalContext) (Result result := newResult() for k, term := range qr { - v, err := r.generateJSON(term, ectx) - if err != nil { - return result, err - } - if rw, ok := rewritten[k]; ok { k = rw } if isTermVar(k) || isTermWasmVar(k) || k.IsGenerated() || k.IsWildcard() { continue } + + v, err := r.generateJSON(term, ectx) + if err != nil { + return result, err + } + result.Bindings[string(k)] = v }