From 02c81866f708c8185087dfc227d8eb75660d2754 Mon Sep 17 00:00:00 2001 From: Noah Treuhaft Date: Fri, 15 May 2026 14:52:00 -0400 Subject: [PATCH] fix view bugs in vam/expr.Dequiet Dequiet.rec panics on a vector.Named wrapping a vector.View, and it returns a vector of the wrong length on a vector.View wrapping a vector.Record with no fields. (I didn't add any ztests here because I haven't been able to come up with any that trigger these bugs.) --- runtime/vam/expr/quiet.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/runtime/vam/expr/quiet.go b/runtime/vam/expr/quiet.go index 5b9bb71381..5670cec39a 100644 --- a/runtime/vam/expr/quiet.go +++ b/runtime/vam/expr/quiet.go @@ -31,7 +31,7 @@ func NewDequiet(sctx *super.Context, expr Evaluator) Evaluator { func (d *Dequiet) Eval(this vector.Any) vector.Any { return vector.Apply(true, func(vecs ...vector.Any) vector.Any { - vec := vector.Under(vecs[0]) + vec := vecs[0] if vec.Kind() == vector.KindRecord { vec = d.rec(vec) } @@ -40,15 +40,17 @@ func (d *Dequiet) Eval(this vector.Any) vector.Any { } func (d *Dequiet) rec(vec vector.Any) vector.Any { + vec = vector.Under(vec) + origVec := vec var index []uint32 if view, ok := vec.(*vector.View); ok { index = view.Index vec = view.Any } var vecs []vector.Any - rec := vector.Under(vec).(*vector.Record) + rec := vec.(*vector.Record) if len(rec.Fields) == 0 { - return vec + return origVec } for _, field := range rec.Fields { vec := field