From 77eb4c4188a46f33bc647e80ff9e6844747c62a8 Mon Sep 17 00:00:00 2001 From: Andrew Barnes Date: Sun, 13 Feb 2022 21:38:46 +1100 Subject: [PATCH] Fix default duplicates column (#4452) * Add test to ensure default not adding dup. columns * Fix for default adding duplicate columns --- crates/nu-command/src/filters/default.rs | 6 ++++-- src/tests/test_table_operations.rs | 8 ++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/crates/nu-command/src/filters/default.rs b/crates/nu-command/src/filters/default.rs index 1db487cd99..cc6345883e 100644 --- a/crates/nu-command/src/filters/default.rs +++ b/crates/nu-command/src/filters/default.rs @@ -67,9 +67,11 @@ fn default( let mut found = false; while idx < cols.len() { - if cols[idx] == column.item && matches!(vals[idx], Value::Nothing { .. }) { - vals[idx] = value.clone(); + if cols[idx] == column.item { found = true; + if matches!(vals[idx], Value::Nothing { .. }) { + vals[idx] = value.clone(); + } } idx += 1; } diff --git a/src/tests/test_table_operations.rs b/src/tests/test_table_operations.rs index cd41ace493..ffdbdc0766 100644 --- a/src/tests/test_table_operations.rs +++ b/src/tests/test_table_operations.rs @@ -232,6 +232,14 @@ fn length_for_rows() -> TestResult { run_test(r#"[[name,age,grade]; [bill,20,a] [a b c]] | length"#, "2") } +#[test] +fn length_defaulted_columns() -> TestResult { + run_test( + r#"echo [[name, age]; [test, 10]] | default age 11 | get 0 | columns | length"#, + "2", + ) +} + #[test] fn get_fuzzy() -> TestResult { run_test("(ls | get -i foo) == $nothing", "true")