From ed0ae66ac2e4abcfcce1c4ed8f0982e0738d919e Mon Sep 17 00:00:00 2001 From: John Kerl Date: Mon, 2 Mar 2026 23:49:31 -0500 Subject: [PATCH] Fix #1998 (#2005) --- pkg/input/record_reader_pprint.go | 14 ++++++++------ .../io-barred-pprint/ragged-implicit/cmd | 1 + .../io-barred-pprint/ragged-implicit/experr | 0 .../io-barred-pprint/ragged-implicit/expout | 19 +++++++++++++++++++ .../io-barred-pprint/ragged-implicit/input | 4 ++++ 5 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 test/cases/io-barred-pprint/ragged-implicit/cmd create mode 100644 test/cases/io-barred-pprint/ragged-implicit/experr create mode 100644 test/cases/io-barred-pprint/ragged-implicit/expout create mode 100644 test/cases/io-barred-pprint/ragged-implicit/input diff --git a/pkg/input/record_reader_pprint.go b/pkg/input/record_reader_pprint.go index 402eca8b6..2f10a9196 100644 --- a/pkg/input/record_reader_pprint.go +++ b/pkg/input/record_reader_pprint.go @@ -646,12 +646,14 @@ func getRecordBatchImplicitPprintHeader( } if nh < nd { // if header shorter than data: use 1-up itoa keys - key := strconv.FormatInt(i+1, 10) - value := mlrval.FromDeferredType(fields[i]) - _, err := record.PutReferenceMaybeDedupe(key, value, dedupeFieldNames) - if err != nil { - errorChannel <- err - return + for i = nh; i < nd; i++ { + key := strconv.FormatInt(i+1, 10) + value := mlrval.FromDeferredType(fields[i]) + _, err := record.PutReferenceMaybeDedupe(key, value, dedupeFieldNames) + if err != nil { + errorChannel <- err + return + } } } if nh > nd { diff --git a/test/cases/io-barred-pprint/ragged-implicit/cmd b/test/cases/io-barred-pprint/ragged-implicit/cmd new file mode 100644 index 000000000..f63f4bef0 --- /dev/null +++ b/test/cases/io-barred-pprint/ragged-implicit/cmd @@ -0,0 +1 @@ +mlr --ipprint --barred-input -N --ragged --ojson cat ${CASEDIR}/input diff --git a/test/cases/io-barred-pprint/ragged-implicit/experr b/test/cases/io-barred-pprint/ragged-implicit/experr new file mode 100644 index 000000000..e69de29bb diff --git a/test/cases/io-barred-pprint/ragged-implicit/expout b/test/cases/io-barred-pprint/ragged-implicit/expout new file mode 100644 index 000000000..30f7e3baf --- /dev/null +++ b/test/cases/io-barred-pprint/ragged-implicit/expout @@ -0,0 +1,19 @@ +[ +{ + "1": "a", + "2": "b", + "3": "c" +}, +{ + "1": "a", + "2": "b", + "3": "" +}, +{ + "1": "a", + "2": "b", + "3": "c", + "4": "d", + "5": "e" +} +] diff --git a/test/cases/io-barred-pprint/ragged-implicit/input b/test/cases/io-barred-pprint/ragged-implicit/input new file mode 100644 index 000000000..e3bd2549d --- /dev/null +++ b/test/cases/io-barred-pprint/ragged-implicit/input @@ -0,0 +1,4 @@ +| a | b | c | +| a | b | +| a | b | c | d | e | ++---+---+---+---+---+