songwdfu commented on code in PR #16152: URL: https://github.com/apache/pinot/pull/16152#discussion_r2157223287
########## pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/BaseJoinOperator.java: ########## @@ -376,4 +382,126 @@ public StatMap.Type getType() { return _type; } } + + /** + * This util class is a view over the left and right row joined together + * currently this is used for filtering and input of projection. So if the joined + * tuple doesn't pass the predicate, the join result is not materialized into Object[]. + * + * It is debatable whether we always want to use this instead of copying the tuple + */ + private abstract static class JoinedRowView extends AbstractList<Object> implements List<Object> { + protected final int _leftSize; + protected final int _size; + + protected JoinedRowView(int resultColumnSize, int leftSize) { + _leftSize = leftSize; + _size = resultColumnSize; + } + + private static final class NullNullView extends JoinedRowView { Review Comment: Yeah I think it shouldn't be, replaced with invariant check -- 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: commits-unsubscr...@pinot.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org