LakshSingla commented on code in PR #16619:
URL: https://github.com/apache/druid/pull/16619#discussion_r1644640797
##########
processing/src/main/java/org/apache/druid/query/scan/ScanResultValueFramesIterable.java:
##########
@@ -157,10 +161,35 @@ private static class ScanResultValueFramesIterator
implements Iterator<FrameSign
Cursor currentCursor = null;
/**
- * Row signature of the current row
+ * Rows in the List form. The {@link #currentCursor} is a wrapper over
these rows
+ */
+ List<Object[]> currentRows = null;
+
+ /**
+ * Row index pointing to the current row in {@link #currentRows}. This is
the exact same row that the {@link #currentCursor}
+ * is also pointing at. Therefore {@link #currentRows} + {@link
#currentCursor} represent the same information as presented
+ * by {@link #currentCursor}.
+ */
+ int currentRowIndex = -1;
+
+ /**
+ * Row signature of the current cursor. This is used to create the cursor
out of the ScanResultValue. We have to use
+ * the full signature because the ScanResultValue will have
*/
RowSignature currentRowSignature = null;
+ /**
+ * Row signature of the current cursor, with columns having unknown (null)
types trimmed out. This is used to write
+ * the rows onto the frame. There's an implicit assumption (that we
verify), that columns with null typed only
+ * contain null values, because the underlying segment didn't have the
column.
+ */
+ RowSignature trimmedRowSignature = null;
Review Comment:
Thanks for the suggestion!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]