@@ -134,12 +134,8 @@ func (b *streamsResultBuilder) CollectRecord(rec arrow.RecordBatch) {
134134 shortName == types .ColumnNameError || shortName == types .ColumnNameErrorDetails ):
135135 parsedCol := col .(* array.String )
136136
137- // TODO: keep errors if --strict is set
138- // These are reserved column names used to track parsing errors. We are dropping them until
139- // we add support for --strict parsing.
140- if shortName == types .ColumnNameError || shortName == types .ColumnNameErrorDetails {
141- continue
142- }
137+ isErrorColumn := ident .ColumnType () == types .ColumnTypeGenerated &&
138+ shortName == types .ColumnNameError || shortName == types .ColumnNameErrorDetails
143139
144140 forEachNotNullRowColValue (numRows , parsedCol , func (rowIdx int ) {
145141 parsedVal := parsedCol .Value (rowIdx )
@@ -155,7 +151,7 @@ func (b *streamsResultBuilder) CollectRecord(rec arrow.RecordBatch) {
155151 b .rowBuilders [rowIdx ].metadataBuilder .Del (shortName )
156152 }
157153 // If the parsed value is empty, the builder won't accept it as it's not a valid Prometheus-style label. We must add it later for LogQL compatibility.
158- if parsedVal == "" {
154+ if parsedVal == "" && ! isErrorColumn {
159155 b .rowBuilders [rowIdx ].parsedEmptyKeys = append (b .rowBuilders [rowIdx ].parsedEmptyKeys , shortName )
160156 }
161157 })
@@ -167,8 +163,8 @@ func (b *streamsResultBuilder) CollectRecord(rec arrow.RecordBatch) {
167163 lbs := b .rowBuilders [rowIdx ].lbsBuilder .Labels ()
168164 ts := b .rowBuilders [rowIdx ].timestamp
169165 line := b .rowBuilders [rowIdx ].line
170- // Ignore rows that don't have stream labels, log line, or timestamp
171- if line == "" || ts .IsZero () || lbs .IsEmpty () {
166+ // Ignore rows that don't have stream labels, or timestamp
167+ if ts .IsZero () || lbs .IsEmpty () {
172168 b .resetRowBuilder (rowIdx )
173169 continue
174170 }
0 commit comments