(search *dag.SearchExpr)
| 132 | } |
| 133 | |
| 134 | func (b *Builder) compileSearch(search *dag.SearchExpr) (expr.Evaluator, error) { |
| 135 | val, err := sup.ParseValue(b.sctx(), search.Value) |
| 136 | if err != nil { |
| 137 | return nil, err |
| 138 | } |
| 139 | e, err := b.compileExpr(search.Expr) |
| 140 | if err != nil { |
| 141 | return nil, err |
| 142 | } |
| 143 | if super.TypeUnder(val.Type()) == super.TypeString { |
| 144 | // Do a grep-style substring search instead of an |
| 145 | // exact match on each value. |
| 146 | term := norm.NFC.Bytes(val.Bytes()) |
| 147 | return expr.NewSearchString(string(term), e), nil |
| 148 | } |
| 149 | return expr.NewSearch(search.Text, val, e) |
| 150 | } |
| 151 | |
| 152 | func (b *Builder) compileSliceExpr(slice *dag.SliceExpr) (expr.Evaluator, error) { |
| 153 | e, err := b.compileExpr(slice.Expr) |
no test coverage detected