mirror of
https://github.com/nushell/nushell.git
synced 2024-11-22 08:23:24 +01:00
Allow empty list inputs in group-by
and return empty record (#10730)
# Description Changed `group-by` behavior to accept empty list as input and return an empty record instead of throwing an error. I also replaced `errors_if_input_empty()` test to reflect the new expected behavior. See #10713 # User-Facing Changes `[] | group-by` or `[] | group-by a` now returns empty record # Tests + Formatting 1 test for emptied table i.e. list --------- Signed-off-by: Oscar <71343264+0scvr@users.noreply.github.com>
This commit is contained in:
parent
1662e61ecb
commit
0a8f27f6f2
@ -128,12 +128,9 @@ pub fn group_by(
|
|||||||
let values: Vec<Value> = input.into_iter().collect();
|
let values: Vec<Value> = input.into_iter().collect();
|
||||||
|
|
||||||
if values.is_empty() {
|
if values.is_empty() {
|
||||||
return Err(ShellError::GenericError(
|
return Ok(PipelineData::Value(
|
||||||
"expected table from pipeline".into(),
|
Value::record(Record::new(), Span::unknown()),
|
||||||
"requires a table input".into(),
|
|
||||||
Some(span),
|
|
||||||
None,
|
None,
|
||||||
Vec::new(),
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,9 +97,10 @@ fn errors_if_column_not_found() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn errors_if_input_empty() {
|
fn group_by_on_empty_list_returns_empty_record() {
|
||||||
let actual = nu!("group-by date");
|
let actual = nu!("[[a b]; [1 2]] | where false | group-by a");
|
||||||
assert!(actual.err.contains("expected table from pipeline"));
|
assert!(actual.err.is_empty());
|
||||||
|
assert!(actual.out.contains("empty record"));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
Loading…
Reference in New Issue
Block a user