(fvec vector.Any, tvec vector.Any)
| 162 | } |
| 163 | |
| 164 | func (s *Strftime) slowPath(fvec vector.Any, tvec vector.Any) vector.Any { |
| 165 | var f *strftime.Strftime |
| 166 | var errIndex []uint32 |
| 167 | errMsgs := vector.NewStringEmpty(0) |
| 168 | out := vector.NewStringEmpty(0) |
| 169 | for i := range fvec.Len() { |
| 170 | format := vector.StringValue(fvec, i) |
| 171 | if f == nil || f.Pattern() != format { |
| 172 | var err error |
| 173 | f, err = strftime.New(format) |
| 174 | if err != nil { |
| 175 | errIndex = append(errIndex, i) |
| 176 | errMsgs.Append("strftime: " + err.Error()) |
| 177 | continue |
| 178 | } |
| 179 | } |
| 180 | t := vector.IntValue(tvec, i) |
| 181 | out.Append(f.FormatString(nano.Ts(t).Time())) |
| 182 | } |
| 183 | if len(errIndex) > 0 { |
| 184 | errVec := vector.NewVecWrappedError(s.sctx, errMsgs, vector.Pick(fvec, errIndex)) |
| 185 | return vector.Combine(out, errIndex, errVec) |
| 186 | } |
| 187 | return out |
| 188 | } |
no test coverage detected