| 317 | namespace { |
| 318 | |
| 319 | void PromoteExecSpanScalars(ExecSpan* span) { |
| 320 | // In the "all scalar" case, we "promote" the scalars to ArraySpans of |
| 321 | // length 1, since the kernel implementations do not handle the all |
| 322 | // scalar case |
| 323 | for (int i = 0; i < span->num_values(); ++i) { |
| 324 | ExecValue* value = &span->values[i]; |
| 325 | if (value->is_scalar()) { |
| 326 | value->array.FillFromScalar(*value->scalar); |
| 327 | value->scalar = nullptr; |
| 328 | } |
| 329 | } |
| 330 | } |
| 331 | |
| 332 | bool CheckIfAllScalar(const ExecBatch& batch) { |
| 333 | for (const Datum& value : batch.values) { |
no test coverage detected