| 878 | } |
| 879 | |
| 880 | Status ExecuteSingleSpan(const ExecSpan& input, ExecResult* out) { |
| 881 | ArraySpan* result_span = out->array_span_mutable(); |
| 882 | if (output_type_.type->id() == Type::NA) { |
| 883 | result_span->null_count = result_span->length; |
| 884 | } else if (kernel_->null_handling == NullHandling::INTERSECTION) { |
| 885 | if (!elide_validity_bitmap_) { |
| 886 | PropagateNullsSpans(input, result_span); |
| 887 | } |
| 888 | } else if (kernel_->null_handling == NullHandling::OUTPUT_NOT_NULL) { |
| 889 | result_span->null_count = 0; |
| 890 | } |
| 891 | RETURN_NOT_OK(kernel_->exec(kernel_ctx_, input, out)); |
| 892 | // Output type didn't change |
| 893 | DCHECK(out->is_array_span()); |
| 894 | return Status::OK(); |
| 895 | } |
| 896 | |
| 897 | Status ExecuteNonSpans(ExecListener* listener) { |
| 898 | // ARROW-16756: Kernel is going to allocate some memory and so |
nothing calls this directly
no test coverage detected