felipecrv commented on code in PR #34697: URL: https://github.com/apache/arrow/pull/34697#discussion_r1147630352
########## cpp/src/arrow/array/array_run_end.cc: ########## @@ -74,19 +74,6 @@ void RunEndEncodedArray::SetData(const std::shared_ptr<ArrayData>& data) { ARROW_CHECK_EQ(ree_type->run_end_type()->id(), data->child_data[0]->type->id()); ARROW_CHECK_EQ(ree_type->value_type()->id(), data->child_data[1]->type->id()); - DCHECK_EQ(data->child_data.size(), 2); - - // A non-zero number of logical values in this array (offset + length) implies - // a non-zero number of runs and values. - DCHECK(data->offset + data->length == 0 || data->child_data[0]->length > 0); - DCHECK(data->offset + data->length == 0 || data->child_data[1]->length > 0); - // At least as many values as run_ends - DCHECK_GE(data->child_data[1]->length, data->child_data[0]->length); - - // The null count for run-end encoded arrays is always 0. Actual number of - // nulls needs to be calculated through other means. - DCHECK_EQ(data->null_count, 0); - Array::SetData(data); run_ends_array_ = MakeArray(this->data()->child_data[0]); values_array_ = MakeArray(this->data()->child_data[1]); Review Comment: This will segfault if `child_data.size() < 2`, so maybe we should wrap this in size checks to allow invalid invalid data to go through until `Validate` checks it. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org