due to:
// Figure out which mutation to apply.
whichMut := false
if req.PredicateFilter == nil {
// Use true_mutations iff row contains any cells.
whichMut = !r.isEmpty()
} else {
// Use true_mutations iff any cells in the row match the filter.
// TODO(dsymonds): This could be cheaper.
nr := r.copy()
filterRow(req.PredicateFilter, nr)
whichMut = !nr.isEmpty()
}
// filterRow modifies a row with the given filter. Returns true if at least one cell from the row matches,
// false otherwise. If a filter is invalid, filterRow returns false and an error.
func filterRow(f *btpb.RowFilter, r *row) (bool, error) {
if f == nil {
return true, nil
}
// Handle filters that apply beyond just including/excluding cells.
switch f := f.Filter.(type) {
case *btpb.RowFilter_BlockAllFilter:
return !f.BlockAllFilter, nil
case *btpb.RowFilter_PassAllFilter:
return f.PassAllFilter, nil
return !f.BlockAllFilter, nil will not make row empty
and filterRow(req.PredicateFilter, nr) doesn't check bool nor error..............
PS: is it true other lang's client tests against bttest? if that's the case, why this is not discovered?
due to:
return !f.BlockAllFilter, nilwill not makerowemptyand
filterRow(req.PredicateFilter, nr)doesn't checkboolnorerror..............PS: is it true other lang's client tests against bttest? if that's the case, why this is not discovered?