-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Open
Labels
In-PRIndicates that a PR is out for the issueIndicates that a PR is out for the issueIssue-BugIssue has been identified as a bug in the productIssue has been identified as a bug in the productWG-Cmdletsgeneral cmdlet issuesgeneral cmdlet issuesWG-ReviewedA Working Group has reviewed this and made a recommendationA Working Group has reviewed this and made a recommendation
Description
Prerequisites
- Write a descriptive title.
- Make sure you are able to repro it on the latest released version
- Search the existing issues.
- Refer to the FAQ.
- Refer to Differences between Windows PowerShell 5.1 and PowerShell.
If CSV input data doesn't satisfy an uncommunicated threshold regarding the number of columns and empty quoted/unquoted fields, CSV deserialization using ConvertFrom-Csv
/Import-Csv
yields no output. No error/warning is emitted either; the input is effectively ignored.
Steps to reproduce
Test 1
In the following examples, no custom object is emitted by ConvertFrom-Csv
irrespective of row count.
# No custom object output, irrespective of row count.
# Example 1a:
@'
"P1"
""
'@ | ConvertFrom-Csv
# Example 1b:
@'
"P1"
""
""
""
'@ | ConvertFrom-Csv
Tests 2-3
In the following examples, a custom object is emitted for all rows except the last.
# Partial custom object output.
# Output for each row except the last.
# If there is only one row, no object is emitted.
# Example 2a:
@'
"P1","P2"
"",
'@ | ConvertFrom-Csv # Nothing
# Example 2b:
@'
"P1","P2"
"",
"",
'@ | ConvertFrom-Csv # 1 custom object
# Example 3a:
@'
"P1","P2"
,
'@ | ConvertFrom-Csv # Nothing
# Example 3b:
@'
"P1","P2"
,
,
'@ | ConvertFrom-Csv # 1 custom object
Tests 4-6
Custom object output is correct in following examples.
# Custom object output in examples 4-6.
# Example 4a:
@'
"P1","P2"
,""
'@ | ConvertFrom-Csv
# Example 4b:
@'
"P1","P2"
,""
,""
'@ | ConvertFrom-Csv
# Example 5a:
@'
"P1","P2"
"",""
'@ | ConvertFrom-Csv
# Example 5b:
@'
"P1","P2"
"",""
"",""
'@ | ConvertFrom-Csv
# Example 6a:
@'
"P1","P2","P3"
,,
'@ | ConvertFrom-Csv
# Example 6b:
@'
"P1","P2","P3"
,,
,,
'@ | ConvertFrom-Csv
Note:
- As of PS v7.5.0, the CSV data above (examples 1-6) is all generated by
ConvertTo-Csv
, which may produce quoted (""
) or unquoted empty fields by default. See: - How
ConvertFrom-Csv
interprets unquoted empty fields is also inconsistent. See:
Expected behavior
- Test 1: Should emit a custom object with a
P1
property. - Tests 2a & 3a: Should emit a custom object with a
P1
andP2
property. - Tests 2b & 3b: Should emit 2 custom objects, each with a
P1
andP2
property.
Actual behavior
- Test 1: No custom object output.
- Tests 2-3: Partial custom object output for all rows except the last.
Environment data
Name Value
---- -----
PSVersion 7.5.0-rc.1
PSEdition Core
GitCommitId 7.5.0-rc.1
OS Microsoft Windows 10.0.19045
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
mklement0
Metadata
Metadata
Assignees
Labels
In-PRIndicates that a PR is out for the issueIndicates that a PR is out for the issueIssue-BugIssue has been identified as a bug in the productIssue has been identified as a bug in the productWG-Cmdletsgeneral cmdlet issuesgeneral cmdlet issuesWG-ReviewedA Working Group has reviewed this and made a recommendationA Working Group has reviewed this and made a recommendation
Type
Projects
Status
Issue In Progress