chore: avoid unnecessary cloning (#3537)

This commit is contained in:
JeremyHi
2024-03-18 21:24:13 +08:00
committed by GitHub
parent 3acd5bfad0
commit cf25cf984b

View File

@@ -255,20 +255,18 @@ impl Stream for SeriesDivideStream {
fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {
loop {
if let Some(batch) = self.buffer.clone() {
if let Some(batch) = self.buffer.take() {
let same_length = self.find_first_diff_row(&batch) + 1;
if same_length >= batch.num_rows() {
let next_batch = match ready!(self.as_mut().fetch_next_batch(cx)) {
Some(Ok(batch)) => batch,
Some(Ok(next_batch)) => next_batch,
None => {
self.buffer = None;
self.num_series += 1;
return Poll::Ready(Some(Ok(batch)));
}
error => return Poll::Ready(error),
};
let new_batch =
compute::concat_batches(&batch.schema(), &[batch.clone(), next_batch])?;
let new_batch = compute::concat_batches(&batch.schema(), &[batch, next_batch])?;
self.buffer = Some(new_batch);
continue;
} else {