Skip to content

Commit 4090508

Browse files
committed
Extend test for datafusion/physical-plan/src/aggregates/order/mod.rs
- Test coverage extended to cover longer sequences - Replacement key charges only new allocation, not old key
1 parent d3cef8c commit 4090508

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

  • datafusion/physical-plan/src/aggregates/order

‎datafusion/physical-plan/src/aggregates/order/mod.rs‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,16 @@ mod tests {
214214
ordering.remove_groups(1);
215215
assert_eq!(ordering.size(), in_progress);
216216

217+
// Replacing the key charges only the new payload, not the previous key.
218+
let replacement_key = "updated sort key with a longer payload";
219+
let replacement_group_values: Vec<ArrayRef> =
220+
vec![Arc::new(StringArray::from(vec![replacement_key]))];
221+
ordering.new_groups(&replacement_group_values, &[1], 2)?;
222+
let replaced =
223+
expected + ScalarValue::Utf8(Some(replacement_key.to_owned())).size();
224+
assert!(replaced > in_progress);
225+
assert_eq!(ordering.size(), replaced);
226+
217227
// Completing or resetting drops the key, but retains order-index capacity.
218228
ordering.input_done();
219229
assert_eq!(ordering.size(), expected);

0 commit comments

Comments
 (0)