You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ az graph query -q 'Resources | where type == "microsoft.compute/virtualmachines"' --query 'data[].{Name: name, Location: location, Disk: properties.storageProfile.dataDisks[0].name, ResouceGroup: resourceGroup}' -o table
Name Location ResouceGroup Disk
--------------------------- ---------- -------------- --------------------------------------
kvm-ubuntu1804Gen2-NoneDisk japaneast vm-rg
tkvm-ubuntu1804Gen2-AddDisk japaneast vm-rg tkvm-ubuntu1804Gen2-AddDisk_DataDisk_0
tkdsvm japaneast dsvmrg
As the above --query result shows different order of columns regardless the query specifies "Name, Location, Disk, ResourceGroup" orders.
In my view
The behavior seems to change the result when the first record includes "null" value. If the first record has no "null" value, the result expectly shows according to --query order:
$ az graph query -q 'Resources | where type == "microsoft.compute/virtualmachines"' --query 'data[].{Name: name, Location: location, Disk: properties.storageProfile.dataDisks[0].name, ResouceGroup: resourceGroup}' -o table --skip 1
Name Location Disk ResouceGroup
--------------------------- ---------- -------------------------------------- --------------
tkvm-ubuntu1804Gen2-AddDisk japaneast tkvm-ubuntu1804Gen2-AddDisk_DataDisk_0 vm-rg
tkdsvm japaneast dsvmrg
This is a sharp observation. Those lines try to remove columns that contains None value, but the side effect is that it may unintentionally change column order.
Problem
When json value has "null", knack in Azure CLI unintentionally changes column order regardless of specifying order of the columns by JMESPath.
Reproduce steps
As the above --query result shows different order of columns regardless the query specifies "Name, Location, Disk, ResourceGroup" orders.
In my view
The behavior seems to change the result when the first record includes "null" value. If the first record has no "null" value, the result expectly shows according to --query order:
This null value behavior seems to be caused by the following line:
knack/output.py at d407b81d451d36c6ca1baeb3cd067a3f1275cb85 · microsoft/knack
Request
Could you enhance/fix this behavior? We want you to show the same result whether the first record includes null value or not.
The text was updated successfully, but these errors were encountered: