| 77 | } |
| 78 | |
| 79 | Result<Datum> DropNullArray(const std::shared_ptr<Array>& values, ExecContext* ctx) { |
| 80 | if (values->null_count() == 0) { |
| 81 | return values; |
| 82 | } |
| 83 | if (values->null_count() == values->length()) { |
| 84 | return MakeEmptyArray(values->type(), ctx->memory_pool()); |
| 85 | } |
| 86 | if (values->type()->id() == Type::type::NA) { |
| 87 | return std::make_shared<NullArray>(0); |
| 88 | } |
| 89 | auto drop_null_filter = Datum{MakeDropNullFilter(*values)}; |
| 90 | return Filter(values, drop_null_filter, FilterOptions::Defaults(), ctx); |
| 91 | } |
| 92 | |
| 93 | Result<Datum> DropNullChunkedArray(const std::shared_ptr<ChunkedArray>& values, |
| 94 | ExecContext* ctx) { |
no test coverage detected