mirror of
https://github.com/nushell/nushell.git
synced 2024-11-28 11:24:09 +01:00
Fix select
cell path renaming behavior (#13361)
# Description Fixes #13359 In an attempt to generate names for flat columns resulting from a nested accesses #3016 generated new column names on nested selection, out of convenience, that composed the cell path as a string (including `.`) and then simply replaced all `.` with `_`. As we permit `.` in column names as long as you quote this surprisingly alters `select`ed columns. # User-Facing Changes New columns generated by selection with nested cell paths will for now be named with a string containing the keys separated by `.` instead of `_`. We may want to reconsider the semantics for nested access. # Tests + Formatting - Alter test to breaking change on nested `select`
This commit is contained in:
parent
b0bf54614f
commit
f5bff8c9c8
@ -240,7 +240,7 @@ fn select(
|
|||||||
//FIXME: improve implementation to not clone
|
//FIXME: improve implementation to not clone
|
||||||
match input_val.clone().follow_cell_path(&path.members, false) {
|
match input_val.clone().follow_cell_path(&path.members, false) {
|
||||||
Ok(fetcher) => {
|
Ok(fetcher) => {
|
||||||
record.push(path.to_string().replace('.', "_"), fetcher);
|
record.push(path.to_string(), fetcher);
|
||||||
if !columns_with_value.contains(&path) {
|
if !columns_with_value.contains(&path) {
|
||||||
columns_with_value.push(path);
|
columns_with_value.push(path);
|
||||||
}
|
}
|
||||||
@ -271,7 +271,7 @@ fn select(
|
|||||||
// FIXME: remove clone
|
// FIXME: remove clone
|
||||||
match v.clone().follow_cell_path(&cell_path.members, false) {
|
match v.clone().follow_cell_path(&cell_path.members, false) {
|
||||||
Ok(result) => {
|
Ok(result) => {
|
||||||
record.push(cell_path.to_string().replace('.', "_"), result);
|
record.push(cell_path.to_string(), result);
|
||||||
}
|
}
|
||||||
Err(e) => return Err(e),
|
Err(e) => return Err(e),
|
||||||
}
|
}
|
||||||
@ -295,7 +295,7 @@ fn select(
|
|||||||
//FIXME: improve implementation to not clone
|
//FIXME: improve implementation to not clone
|
||||||
match x.clone().follow_cell_path(&path.members, false) {
|
match x.clone().follow_cell_path(&path.members, false) {
|
||||||
Ok(value) => {
|
Ok(value) => {
|
||||||
record.push(path.to_string().replace('.', "_"), value);
|
record.push(path.to_string(), value);
|
||||||
}
|
}
|
||||||
Err(e) => return Err(e),
|
Err(e) => return Err(e),
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ fn complex_nested_columns() {
|
|||||||
r#"
|
r#"
|
||||||
{sample}
|
{sample}
|
||||||
| select nu."0xATYKARNU" nu.committers.name nu.releases.version
|
| select nu."0xATYKARNU" nu.committers.name nu.releases.version
|
||||||
| get nu_releases_version
|
| get "nu.releases.version"
|
||||||
| where $it > "0.8"
|
| where $it > "0.8"
|
||||||
| get 0
|
| get 0
|
||||||
"#
|
"#
|
||||||
|
Loading…
Reference in New Issue
Block a user