diff --git a/sio/csupio/vectorreader.go b/sio/csupio/vectorreader.go index f50ca03d4..6384d3ea4 100644 --- a/sio/csupio/vectorreader.go +++ b/sio/csupio/vectorreader.go @@ -142,7 +142,7 @@ func (v *VectorReader) ConcurrentPull(done bool, n int) (vector.Any, error) { func pruneObject(sctx *super.Context, mf *metafilter, o *csup.Object) bool { vals := o.ProjectMetadata(sctx, mf.projection) for _, val := range vals { - if mf.filter.Eval(val).Ptr().AsBool() { + if !mf.filter.Eval(val).Equal(super.False) { return false } } diff --git a/sio/csupio/ztests/metadata.yaml b/sio/csupio/ztests/metadata.yaml new file mode 100644 index 000000000..4a7b7fd75 --- /dev/null +++ b/sio/csupio/ztests/metadata.yaml @@ -0,0 +1,12 @@ +script: | + super -f csup -o t.csup - + super -s -c 'from t.csup | where x.y==1' + +inputs: + - name: stdin + data: &stdin | + {x?:{y:1}} + +outputs: + - name: stdout + data: *stdin diff --git a/sio/parquetio/vectorreader.go b/sio/parquetio/vectorreader.go index 994a51ed7..641586c0a 100644 --- a/sio/parquetio/vectorreader.go +++ b/sio/parquetio/vectorreader.go @@ -145,7 +145,7 @@ func (p *VectorReader) ConcurrentPull(done bool, id int) (vector.Any, error) { if len(p.metadataFilters) > 0 { rgMetadata := pr.MetaData().RowGroup(rowGroup) val := buildMetadataValue(p.sctx, rgMetadata, p.metadataColIndexes, p.colIndexToField) - if !p.metadataFilters[id].Eval(val).Ptr().AsBool() { + if p.metadataFilters[id].Eval(val).Equal(super.False) { continue } }