Skip to content

Commit 617e790

Browse files
committed
slice_merge_batch
1 parent 888f556 commit 617e790

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

  • datafusion/functions-aggregate-common/src/aggregate/count_distinct

datafusion/functions-aggregate-common/src/aggregate/count_distinct/groups.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,11 +163,14 @@ where
163163
debug_assert_eq!(values.len(), 1);
164164
self.counts.resize(total_num_groups, 0);
165165
let list_array = values[0].as_list::<i32>();
166+
let inner = list_array.values().as_primitive::<T>();
167+
let inner_values = inner.values();
168+
let offsets = list_array.offsets();
166169

167170
for (row_idx, &group_idx) in group_indices.iter().enumerate() {
168-
let inner = list_array.value(row_idx);
169-
let inner_arr = inner.as_primitive::<T>();
170-
for &value in inner_arr.values().iter() {
171+
let start = offsets[row_idx] as usize;
172+
let end = offsets[row_idx + 1] as usize;
173+
for &value in &inner_values[start..end] {
171174
if self.seen.insert((group_idx, value)) {
172175
self.counts[group_idx] += 1;
173176
}

0 commit comments

Comments
 (0)